{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Seq2Seq time series outlier detection on ECG data\n",
    "\n",
    "## Method\n",
    "\n",
    "The [Sequence-to-Sequence](https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf) (Seq2Seq) outlier detector consists of 2 main building blocks: an encoder and a decoder. The encoder consists of a [Bidirectional](https://en.wikipedia.org/wiki/Bidirectional_recurrent_neural_networks) [LSTM](https://colah.github.io/posts/2015-08-Understanding-LSTMs/) which processes the input sequence and initializes the decoder. The LSTM decoder then makes sequential predictions for the output sequence. In our case, the decoder aims to reconstruct the input sequence. If the input data cannot be reconstructed well, the reconstruction error is high and the data can be flagged as an outlier. The reconstruction error is measured as the mean squared error (MSE) between the input and the reconstructed instance. \n",
    "\n",
    "Since even for normal data the reconstruction error can be state-dependent, we add an outlier threshold estimator network to the Seq2Seq model. This network takes in the hidden state of the decoder at each timestep and predicts the estimated reconstruction error for normal data. As a result, the outlier threshold is not static and becomes a function of the model state. This is similar to [Park et al. (2017)](https://arxiv.org/pdf/1711.00614.pdf), but while they train the threshold estimator separately from the Seq2Seq model with a Support-Vector Regressor, we train a neural net regression network end-to-end with the Seq2Seq model.\n",
    "\n",
    "The detector is first trained on a batch of unlabeled, but normal (*inlier*) data. Unsupervised training is desireable since labeled data is often scarce. The Seq2Seq outlier detector is suitable for both **univariate and multivariate time series**.\n",
    "\n",
    "## Dataset\n",
    "\n",
    "The outlier detector needs to spot anomalies in electrocardiograms (ECG's). The dataset contains 5000 ECG's, originally obtained from [Physionet](https://archive.physionet.org/cgi-bin/atm/ATM) under the name *BIDMC Congestive Heart Failure Database(chfdb)*, record *chf07*. The data has been pre-processed in 2 steps: first each heartbeat is extracted, and then each beat is made equal length via interpolation. The data is labeled and contains 5 classes. The first class which contains almost 60% of the observations is seen as *normal* while the others are outliers. The detector is trained on heartbeats from the first class and needs to flag the other classes as anomalies."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook requires the `seaborn` package for visualization which can be installed via `pip`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install seaborn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.environ[\"TF_USE_LEGACY_KERAS\"] = \"1\"\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "from sklearn.metrics import accuracy_score, confusion_matrix, f1_score, precision_score, recall_score\n",
    "\n",
    "from alibi_detect.od import OutlierSeq2Seq\n",
    "from alibi_detect.utils.fetching import fetch_detector\n",
    "from alibi_detect.saving import save_detector, load_detector\n",
    "from alibi_detect.datasets import fetch_ecg\n",
    "from alibi_detect.utils.visualize import plot_roc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Flip train and test data because there are only 500 ECG's in the original training set and 4500 in the test set:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4500, 140) (4500,)\n",
      "(500, 140) (500,)\n"
     ]
    }
   ],
   "source": [
    "(X_test, y_test), (X_train, y_train) = fetch_ecg(return_X_y=True)\n",
    "print(X_train.shape, y_train.shape)\n",
    "print(X_test.shape, y_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since we treat the first class as the normal, *inlier* data and the rest of *X_train* as outliers, we need to adjust the training (inlier) data and the labels of the test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2627, 140) (1873, 140)\n"
     ]
    }
   ],
   "source": [
    "inlier_idx = np.where(y_train == 1)[0]\n",
    "X_inlier, y_inlier = X_train[inlier_idx], np.zeros_like(y_train[inlier_idx])\n",
    "outlier_idx = np.where(y_train != 1)[0]\n",
    "X_outlier, y_outlier = X_train[outlier_idx], y_train[outlier_idx]\n",
    "y_test[y_test == 1] = 0  # class 1 represent the inliers\n",
    "y_test[y_test != 0] = 1\n",
    "print(X_inlier.shape, X_outlier.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Some of the outliers in *X_train* are used in combination with some of the inlier instances to infer the threshold level:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1000, 140) (1000,)\n"
     ]
    }
   ],
   "source": [
    "n_threshold = 1000\n",
    "perc_inlier = 60\n",
    "n_inlier = int(perc_inlier * .01 * n_threshold)\n",
    "n_outlier = int((100 - perc_inlier) * .01 * n_threshold)\n",
    "idx_thr_in = np.random.choice(X_inlier.shape[0], n_inlier, replace=False)\n",
    "idx_thr_out = np.random.choice(X_outlier.shape[0], n_outlier, replace=False)\n",
    "X_threshold = np.concatenate([X_inlier[idx_thr_in], X_outlier[idx_thr_out]], axis=0)\n",
    "y_threshold = np.zeros(n_threshold).astype(int)\n",
    "y_threshold[-n_outlier:] = 1\n",
    "print(X_threshold.shape, y_threshold.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Apply min-max scaling between 0 and 1 to the observations using the inlier data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Inlier: min 0.00 --- max 1.00\n",
      "Threshold: min 0.00 --- max 0.99\n",
      "Test: min 0.11 --- max 0.92\n"
     ]
    }
   ],
   "source": [
    "xmin, xmax = X_inlier.min(), X_inlier.max()\n",
    "rng = (0, 1)\n",
    "X_inlier = ((X_inlier - xmin) / (xmax - xmin)) * (rng[1] - rng[0]) + rng[0]\n",
    "X_threshold = ((X_threshold - xmin) / (xmax - xmin)) * (rng[1] - rng[0]) + rng[0]\n",
    "X_test = ((X_test - xmin) / (xmax - xmin)) * (rng[1] - rng[0]) + rng[0]\n",
    "X_outlier = ((X_outlier - xmin) / (xmax - xmin)) * (rng[1] - rng[0]) + rng[0]\n",
    "print('Inlier: min {:.2f} --- max {:.2f}'.format(X_inlier.min(), X_inlier.max()))\n",
    "print('Threshold: min {:.2f} --- max {:.2f}'.format(X_threshold.min(), X_threshold.max()))\n",
    "print('Test: min {:.2f} --- max {:.2f}'.format(X_test.min(), X_test.max()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Reshape the observations to *(batch size, sequence length, features)* for the detector:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2627, 140, 1) (1000, 140, 1) (500, 140, 1)\n"
     ]
    }
   ],
   "source": [
    "shape = (-1, X_inlier.shape[1], 1)\n",
    "X_inlier = X_inlier.reshape(shape)\n",
    "X_threshold = X_threshold.reshape(shape)\n",
    "X_test = X_test.reshape(shape)\n",
    "X_outlier = X_outlier.reshape(shape)\n",
    "print(X_inlier.shape, X_threshold.shape, X_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now visualize scaled instances from each class:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEWCAYAAAB2X2wCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydd3hVRfrHP3Nr6k1vpJOQhNCkg4KgSBG7WLDtuiK2ddX92bfYXV3XVexdsTdUBGlSld57SQjppPee2+b3x7kJCSQkQALGnc/z3IfknDlz5pwbvuc933lnRkgpUSgUCkXPR3emG6BQKBSKrkEJukKhUPxOUIKuUCgUvxOUoCsUCsXvBCXoCoVC8TtBCbpCoVD8TlCCrvjNIYS4UwhRKISoEUIEnGQde4UQ410/CyHER0KIciHEpq46x5lECDFbCPHMmW6H4reFEvT/EYQQmUKIepeANX1eb7E/TAjxgRAiXwhRLYQ4IIR4Ugjh6dovhBB3CyF2CSHqhBAFQohVQojpXdxOI/ASMElK6SWlLD1qf4wQQra4hkIhxE9CiIkty0kp+0kpV7l+HQNMBCKklCM6Okd30xkxdt3ve4QQe4QQtUKIXCHEt0KIAaernYqehxL0/y0ucQlY0+duACGEP7AecAdGSym90QTQF4hzHfsqcB9wPxAAhAP/AKZ0cRtDADdgbwflfKWUXsAgYCnwgxDi5nbKRgOZUsraEzxHmwgh9Cdz3AnyCnAvcA/gDyQAc4GLTsO5FT0VKaX6/A98gEzggnb2PQPsBnTt7E8AHMCwDs5xM5AOVAMZwA3tlDMDs4A812eWa1sCUAtIoAZY0caxMa79hqO2PwAUNl1D0/UCM4AGV/trgC/bOgeQhPZgKANSgGta1D0beAtY6Dr2Ald7XwSyXed9G3B3lR8P5KI9/IqAfOBPrn23ATbA6jr//DausY+rvSOOc69nA8+4fvYDfgKKgXLXzxEdfS9APPALUAmUAF+3OOZ492MqsM9V32HggTP9960+ru/mTDdAfU7TF318Qd8APHmcY+9Ai3CPV78nUAUkun4PA/q1U/Yp1zmDgSBgHfC0a1+bgt3i2PYEvbdre9+jr9claGvaq8PV9hzgT4ABGOwSuGTX/tku0TsH7a3WDXgZmIcWPXsD84HnXOXHA3bXdRpdAlgH+LWo75kO7ndWB/e7paAHANMAD1dbvgXmdvS9oD3c/t7imsZ08n7kA2NdP/sBQ87037f6aB9lufxvMVcIUdHiM9O1PQDtP2l7BAIFLTe4PN0KIUSDECLatdkJ9BdCuEsp86WU7VkaNwBPSSmLpJTFwJPATSd/WYAW6YMmsCfKxWgPrI+klHYp5XbgO+DqFmV+lFKulVI6gUa0SPuvUsoyKWU18C+gZX+CDe0abVLKhWjReGIn29PR99EKKWWplPI7KWWdqy3PAuNaFGnve7Gh2VG9pJQNUso1ru0d3Q8bkCyEsEgpy6WU2zrbVkX3ogT9f4vLpZS+LT7vubaXokVu7XHMfillBJrQmwEhNX/6WrToMl8IsUAIkdROfb2ArBa/Z7m2nQrhrn/LTuLYaGBky4cd2kMntEWZnBY/B6FFw1tblF/s2t5EqZTS3uL3OsCrk+3p6PtohRDCQwjxjhAiSwhRBfwK+Aoh9B18Lw8BAtjkygq6xbW9o/sxDe2tI0sI8YsQYnRn26roXpSgKwCWAVcIIdr7e1gBRAghhh2vEinlEinlRDQxOgC8107RPDTRaCKKIxH2yXIFml+dchLH5gC/HPWw85JS3tmiTMtpSUuAejTroqm8j9Q6aTtDR1OcLqcT97sF96NF/yOllBbgXNd2Ae1/L1LKAinlTCllL+B24E0hRDwd3A8p5WYp5WVoltlc4JtOtlPRzShBV4CWwmcBPm6yT4QQ4UKIl4QQA6WUKcA7wFdCiIlCCHdXpsfZTRUIIUKEEJe50hwb0SwGZzvn+xL4hxAiSAgRCDwGfHYyDXed927gceBRlyVyovwEJAghbhJCGF2f4UKIvm0Vdp3jPeBlIUSwqx3hQojJnTxfIZrn3yZSyoPAm8CXQojxQgiTEMJNCDFdCPFIG4d4oz1gKlwZS4837Tje9yKEuFoIEeEqWo72oHEe73642nKDEMJHSmlD8+dP5p4rugEl6P9bzD8qD/0HACllGZo424CNQohqtCixEkhzHftntNTFl9BsjVzgabTX+Wy0v6X/Q4u0y9A83JYRbkueAbYAu9Cya7a5tp0IFUKIWtfxU4GrpZQfnmAdALh850loHngeWn/Bv9HspPZ4GO3ebHDZHMvovEf+AZoHXSGEmNtOmXuA14E3gArgENpbyPw2ys5CSzktQetsXtxi3/G+l+Fo33cNWgfvvVLK9E7cj5uATNd134Fmxyh+Awgp1QIXCoVC8XtARegKhULxO0EJukKhUPxOUIKuUCgUvxOUoCsUCsXvBMOZOnFgYKCMiYk5U6dXKBSKHsnWrVtLpJRBbe07Y4IeExPDli1bztTpFQqFokcihMhqb5+yXBQKheJ3ghJ0hUKh+J2gBF2hUCh+J3RK0IUQU4QQKUKItLbmkhBCRAshlruWJ1vVYn4IhUKhUJwmOhR01yRMbwAXAsnAdUKI5KOKvQh8IqUciDap/3Nd3VCFQqFQHJ/OROgjgDTXpD1W4CvgsqPKJKNNsQqwso39CoVCoehmOiPo4bSe3D+XI4sJNLETuNL18xWAtxAi4NSbp1AoFIrO0lWdog8A44QQ29Gm5zyMtshtK4QQtwkhtgghthQXF5/UiTZnlvHikhTsDjUFs0KhULSkM4J+GIhs8XuEa1szUso8KeWVUsrBaIvOIqWsOLoiKeW7UsphUsphQUFtDnTqkO3Z5by+Mo0GuxJ0hUKhaElnBH0z0EcIESuEMKFNej+vZQEhRGCL5cseBU5qoYHOYDboAWi0HfMCoFAoFP/TdCjoroVu7waWAPuBb6SUe4UQTwkhLnUVGw+kCCFSgRC0Vce7BbNBa7JVWS4KhULRik7N5SKlXAgsPGrbYy1+ngPM6dqmtY3ZqAl6o00JukKhULSkx40UbbZclIeuUCgUreiBgu6K0O3KQ1coFIqW9DhBNzULuorQFQqFoiU9TtCPZLkoQVcoFIqW9EBBV5aLQqFQtEXPE3SjslwUCoWiLXqeoLssF6sSdIVCoWhFDxR0ZbkoFApFW/RgQVcRukKhULSk5wm6UWW5KBQKRVv0OEE36ZXlolAoFG3R4wTdqBcIoSwXhUKhOJoeJ+hCCMwGnRJ0hUKhOIoeJ+igpS6q+dAVCoWiNT1U0HVqPnSFQtEppJRszN9IRcMxi6j97ujUfOi/NcxGncpyUSgUneKTfZ/w4pYXcdO7cVn8Zfi7+ZNWkQZAH78+jIsYR3JA8hluZdfQMwXdoFceukKh6JBfcn7hv1v+y/iI8fi5+fH9we+xO+1EemvLJC/LWsYHuz9g2VXL8HXzPcOtPXV6qKDrVNqiQqE4LpmVmTz060P0DejLC+NewN3gzkPDH0Kv0+NucAfgQNkBrp5/NfPT53NT8k1nuMWnTo/00E0qy0WhUHTArG2zEELw6nmvNgu4l8mr+WeAJP8kBgYOZE7qHKSUZ6qpXUaPFHSzQXnoCoWifXYX72Z59nJu7nczIZ4hxy17VcJVpFems71o+2lqXffRKUEXQkwRQqQIIdKEEI+0sT9KCLFSCLFdCLFLCDG165t6BM1DV5aLQqFom1e2vYK/m3+nbJTJMZPxNHoyJ/W0rHPfrXQo6EIIPfAGcCGQDFwnhDi6S/gfwDdSysHAdODNrm5oS9TAIoVC0R7r89azsWAjMwfMxNPo2WF5D6MHF/e+mCWZS6i2Vp+GFnYfnYnQRwBpUsp0KaUV+Aq47KgyErC4fvYB8rquicdiNurVfOgKheIYpJS8seMNQj1DuSbxmk4fd37k+VidVvaX7u/G1nU/nRH0cCCnxe+5rm0teQK4UQiRCywE/tJWRUKI24QQW4QQW4qLi0+iuRoqQlcoFG2xIX8DO4t3cmv/WzHpTZ0+LsE/AdCyXnoyXdUpeh0wW0oZAUwFPhVCHFO3lPJdKeUwKeWwoKCgkz6ZSltUKBRHI6Xk7Z1vE+wRzBV9rjihYwPdAwlyDyKlPKWbWnd66IygHwYiW/we4drWkhnANwBSyvWAGxDYFQ1sC20uFxWhKxS/VaRTUlvZeFpTATcXbGZb0TZm9J9xQtF5E4n+iT0+Qu/MwKLNQB8hRCyakE8Hrj+qTDYwAZgthOiLJugn76l0gMpDVyh+e9RWNHJoezFZe0opzKiksc7OhXcMoPdZJ/82fiLM3jubIPcgpiVMO6njk/yT2JC3AavDelIPhN8CHUboUko7cDewBNiPls2yVwjxlBDiUlex+4GZQoidwJfAzbIbH81Nk3M5nT1/IIBC8Xtgz6+Hmf3IWlZ/nUpVST1xg4Nw8zSStrXotJy/oqGC9XnruSTuEsx680nVkeifiF3aOVRxqItbd/ro1NB/KeVCtM7Oltsea/HzPuCcrm1a+5iN2nPI6nDiptOfrtMqFIo2cDicbFmQQUishfNv6ot/Ly1VUMr9HNpejMPhRK/v3jGMy7OXY5d2JsdMPuk6kvySAEgpT6FvQN+uatpppYeOFFXriioUvxXStxdTW2ll2IUxzWIOEDMwEGu9nbyD3T9t7ZLMJUR5R9HX/+SFONI7EneDOyll3dcx6qiqInXkKCp+mNst9fdQQXetK+pQmS4KxZlm96pcLIFuRPUPaLU9sq8/eqOOjJ0l3Xr+soYyNhVsYnLMZIQQJ12PXqcnwS+hWztGbQUFOCor0bmdnC3UET1b0FWErlCcUYpzqslPq6T/uAh0utZiajTriezrT+bOkm7NdlmWtQyHdJyS3dJEkn8SKWUp3dZee0EBAIbQ0G6pv2cKutFluahMF4XijLJnVS4Gk46+Z4e1uT92YCDVZQ2UHq7ptjYsyVxCjCWGBL+EU64r0T+Rals1ebXdM9jdlq8JulEJ+hGaI3Q1uEihOGNIKcnYXUrswEDcPI1tlokeEAACMnd1j+1SUl/ClsItp2y3NNHUMdpdtou9sAB0OgynMLDyePRIQTc1C7qK0BWKM0VZXi31VVYi+vq3W8bTx4x/mCd5aZXd0oblWctxSieTYiZ1SX3xfvHohK7bOkZt+QUYgoMRhu5ZW6hHCrry0BWKM0/ugXJA6/w8HmFxPhSmV3bLuJGfs34mxhJDH98+XVKfu8GdaEt0t0XotoJ8jCHHn5/9VOihgt7koSvLRaE4U+QeKMMnyB1vf7fjlguL88Ha4KAsr7ZLz19aX8qWwi1MipnUJXZLE0l+Sd0WodsLCjGEtd3f0BX0UEFXlotCcSZxOJwcTq04rt3SRGictvhywaGuzUdfnu2yW6K7xm5pItE/kbzaPCobu9YmklJiKyjotg5R6KGC7tY0UlQJukJxRijKrMbW6CAi0a/DspZAN9wtJvLTu1Ygf878ucuyW1qS5K91jKaWp3Zpvc7KSmR9PYZQZbm04ojlogRdoTgT5B4oA0GnBF0IQVicDwWHuk7QS+tL2Vy4mYnRE7vUbgEtQge63HaxFRYCYAxVlksrVNqiQnFmyT1QTlCkN25ebacrHk1YnA9VJQ3UVjZ2yfmb7JauGEx0NIHugQS6B3Z5x6gtPx8AY5iyXFqh5nJRKM4c1WUN5KdVENWvY/+8idDePgBdFqV3l93SRKJ/YpcvdtHdo0Shhwq6ykNXKM4ce3/V1rdJPqdXp48JivJGb9SRtq2ImvKGUzp/d9otTST5JZFWkYbNYeuyOm0FBWAwYAjstrV/erqgK8tFoTidOGxO9q3NI2ZgIJZAdwqrGsirqO/wOL1BR1SyP2lbivj40XUsenv3SbehO+2WJpL8k7A77aRXpndZnfb8AgzBQQh990353T3DlboZvU5g1AsVoSsUp5m0bUXUV9sYMD6COqudK95YC8DKB8c3W6HtMeX2AZTm1rBrZQ4H1hdQVVKPJdD9hNvwc9bPRFuiu81ugSMdowfKDjT/fKrYCgowhnSf3QI9NEIHta6oQnEm2L0qF98QDyKS/HhtRRp5lQ3kVTbw7ZbcDo/V6QRBUd4MmRwNQNae0hM+f1lDGZsLNjMpumsHEx1NlHcUHgYP9pTs6bI67QUF3dohCj1a0HVY1XzoCsVpo6KwjsKMKvqfG86h4lreX53OtCERDIny5c2VaZ22QH1DPLAEupG998QFfVnWsi6du6U99Do9g4IGsa1oW5fU1zSoyNCNKYvQwwVdRegKxenjcKo2d0t0/wCenL8Xd6OeR6cmcd8FCeRVNjBna8dROmh56dH9AshNKcduO7GgbGHGQmJ9Ykn06xob5HgMCRnCwfKDVFmrTrkuR0UFsrGxW0eJQk8WdKNeeegKxWnkcGoFHhYTVncdqw+WMGNMbwK9zIztE8iQKF/eWJFGQycFOqp/AHark/yDnU9jLKgtYFvhNqbGTj1hu8Wam4uzru6EjhkSPASJZEfRjhM6ri2yDmQAUO8b0EHJU6NTgi6EmCKESBFCpAkhHmlj/8tCiB2uT6oQotsXETQbdCrLRaE4TUgpyUstJzzBlzVp2tzmE/oGA1rE/eDkJPIqG/hgTUan6gtP9ENv0JHVge0inU6k1QrA4ozFSCRTY6eeUNtrfv2VQxMnkTJ8BBlXX0Pt+vWdOm5A0ADcnHqqXnuL/CefpH7HjpNeyWjPup0A5Lt3Pnf/ZOhQ0IUQeuAN4EIgGbhOCJHcsoyU8q9SyrOklGcBrwHfd0djW2Iy6FSErlCcJiqL66mttNIrwY9fUosJ8DSRHGZp3j86LoBJySG8sTKNoqqO88yNJj29EnyP66PXbdtGxmWXcXD8eVT8MJeF6QvoF9CPKEtUp9ttKyoi75FHMcfHEzDzVhzl5Rx+6CEc1dUdHmsoreJfX+qJ+3EHld//QOb068i5debJifqm9VSaPGiIjD3xY0+AzkToI4A0KWW6lNIKfAVcdpzy1wFfdkXjjofy0BWK00feQe2lOyzOh9UHSxjbJ/CYNUT/NrUvNoeTF3/u3AjLqGR/ygvq2hxoVPTyLLKuvwFHbS3GyAjyH32U6a/u4QrzyE63WTqd5D38MM76esJnvUzwffcRPmsWjtIyime9ctxjG1JTybzqakILrcyaZiL61+UE3HkHtWvXUrNqVafb0NSO0NQdbAtOxHpCR544nRH0cCCnxe+5rm3HIISIBmKBFe3sv00IsUUIsaW4uPhE29oKs0GvLBeF4jSRl1qBu7eRw047ZbVWxiUeu4RaTKAnN58dw7dbc8ku7divbpoOoCirdbRct3kzpe+8g89llxE3fz4xX35Jyu0TiCyBgQ98TMk771Lxw1zKPv6Ysk8/o/ybb7BmZR1Tf/Err1K3fgOhf/8b5rg4ANz798Pvuuso/+IL6ne3nZJYv3MnWTf9AYSg4rVHWJfgZG99BkF33YUxPJySt98+oSi9fOduLPXVbA5JwmrvvsWyoes7RacDc6SUbSqtlPJdKeUwKeWwoFNcU8+sLBeF4rQgpeTwwXJ69fFltcs/H9un7f+/fxgdg5Tw876CY/bVrF5D8ZtvUjl/PtbcXAIjvBA6QVHWkSwSabdT8PQzGHv1IvSJx9F5eiJ0Oj6LK+CjRwbhNWoUxS+/TP6jj1L43PMUPvssBY89TvrFl1D86ms4G7XJvyp//JHSd97B9+qr8Zk2rVU7gu67F31gAHmPPIKjonV3X/WqVWT96Rb0FgvRX3zOgBEXAbCtaBvCaCRg5kwadu6irpM+PED2ouVaHcEJWB3dq1mdGSl6GIhs8XuEa1tbTAf+fKqN6gxmo07Nh65QnAaqSxuoKWtk8EQ/PkzNoV8vC4Fe5jbLRvp7kBTqzdJ9hdw6tnfz9tr168m54w5wjR0R7u5EffgB/r08KW4RoZd/8QWNqamEv/YqOndtFGlOVQ4p5SlcOuxBIq69CWt6OsJoRG+xIKXEUVFByZtvUfLmm5TOno1bYiINe/bgMXIkoY/985iMGL23N+Ev/pecW28l5893E/XB+wiTibJPPqHohf9gTkok8q23MYYEYwLifOLYWax1avpceQUlb71FyZtv4Xn22a3qlXY72TNnYi8oxH3oECyTp+A1dgyNa9eQ5RtBpdm72zWrMxH6ZqCPECJWCGFCE+15RxcSQiQBfkDnH12ngGa5KEFXKLqbHctzQIB/b2+2ZZVzbsLx364v6BvClqxyyms1x9iae5jDf/0/TLEx9Fm3ltgfvscQHETOHXcS4CspyqpGSkn9nr0Uv/IqnmPG4H3BBc31Lc1eCsCE6AkIITDHxWGKikLv64vBzw9zbCzh/3mBqE8+xnfaNBACj+HDiXhlFsLY9vS+niNH0OuFf1O/bRvpF19C6vARFD3/b7wnTCDms88whgQ3l+3t25vsqmwAdCYTATNmULdlCzVr17aqs+zTz6hbvwFDQADVS5eRM3Mmhc89j1f6AbaH9tXuRTdrVocRupTSLoS4G1gC6IEPpZR7hRBPAVuklE3iPh34Sp5sXs8JotIWFYruJz+tgt2rchkwPoKt5TXYnZLzk4KPe8zE5BBeX5nGypQirhgQQu49f0E6HES+/joGf38M/v5EffAhWddfj37JlzSEX0rRr1uoePBu9L6+hD39VKuoelnWMpIDkgn3arPrrhnPESPwHDGi09dmufBCnHX1VP74I17nnov74MFYLpqK0LWOc6O8o1iZvRK7045BZ8B3+rWUzZ5N8X9fwnP0aIROh+3wYYpffRWvceOIePstpM1GwVNPUfbxx+iAioHDwArWbtasTk3OJaVcCCw8attjR/3+RNc1q2OUh65QdC92m4MVnx7A28+NUZf15r7vdhLkbWZo1PFXKRoQ7kOwt5ll+wsZv3cVjfv2E/7KK5hiYprLmCLCifroQ+oemwXAgX+8TLiXF1Eff4yxxSLKBbUF7C7Zzb1D7u2Wa/SddiW+0648bploSzR2aSe/Np9I70h0JhNB991L3kMPU7VoEd7jx5P/xJMAzRaPMJkIe/ppdInJ/PDxT4QOHwJrs7rdQ++xI0VNKm1RoehWNsxNp6KwjvE3JuLUC1YeKGZyv5Bj0hWPRqcTTOgbwrZdGRS/9hqeZ5+N96SJx5Qzx8XR76NZ6HRgHTmFqE8+wRTROgpfmuWyW6ImdN2FnSCR3loXYpPtAmC5+GLMSUkUPv88aRMnUbt6NcH3348x/Ej7hRBknTOZfw+7gcG9tTnQfwse+m+SprTF0+TwKBT/UxzaXsTO5TkMGB9BVHIAv6QWU29zMKWfFj1Lm43K+T+RcdXVZP3hj9gKi1odPzE5mKt2LsRRU0vI3x5td6i+waQnMNKb2vABx4j5msNreG37awwIHECsT/cOyDke0RbX7JBVR1IjhU5H8IMP4CgpxS0pkZivvsT/xhvIP1RJRdGRlM3dh7WpDQZH+QJK0NvFbNDhlGB3KkFXKLqSisI6Vny8n5BYC+dcFQ/Akj0F+LgbGdnbH2m3k3ntdPIefBBnbS31e/aQMW0atRs2NtcxYPcapmRu4ODoyZjj4497vqBoC8XZ1cgW/5cXZyzmL8v/QowlhlfPf7V7LrSTBLoH4m5wJ6c6p9V2r3POIWHjBqI+/BD3s86iorCOH1/ezqrPjwys2pRRRnSAB8Hebpj0OhqV5dI2ZqPWdJW6qFB0LWu/S0PoBJNn9kdv0NKDl+0vZGJyCEa9jqpFi2jYt4+Qx/5J7wU/EfvN1+i9vMi++WayZ95GwVNPU/LPf5AT3Ze34461Wo4mONoba72dymJt5aOS+hIeW/cYA4MG8uHkDwl0774l2zqDEIIo76hWEXoTeos2/YGUklVfHMBhd5J3sIKGWhtOp2RTZhkjY7X5W0wGHbYeNrDotNG8UHQXCXq91UFu+YnNxqZQ/N6wNtjJ2VdG0ugwvP3dAPhiYxZVDXam9AtFOp2UvPMO5j7x+E2fjtDpMMfHE/vdHIL+7/9o2LuX8i++wPfaayl49Hn2Vzk6HDUaHO0NQFG2NsDo3V3vYnPYePqcp/EyeXXvBXeSKEsU2dXZ7e4/sD6fwykVJJ8ThnRKsnaXkFJYTUWdjZGx2gyLRr3o9jUcerCgd+26orOWpzLm3yu56/Ot7M6tJKesjtzyOuXRK/6nyN1fjsPuJHagFhXP3X6YJ3/ax/lJwYxPDKJ62TKsaYcIuP2OVul9Ok9PAm+bSfzyZcR88zWhTzzOOJff/ktqUZvnasIvzBO9UUdRVjU51Tl8m/otV/S54oQm4epuoi3RHK4+jN1pP2afw+5k7XdphMX7MO6GJDx9zaTvLGFDujbx2MjeRyL0M56H/lulyXLpqkyXnTkV+Hua+CWlmIW7jwxbHhDuw8xzezO1fygGfY99/ikUnSJjZzFmDwOh8T6sOVjC/d/uZFRsAG/eMAS9TlD69jsYo6OwXDilzeN17u64DxwIQGygJ5H+7vySWsxNo2PaPaderyMo0ovirGoW7PgQvdBzx6A7uuPyTpoo7ygtdbEmn0hLZKt91aUNNNbaST6nFzqdIHZgIAc25LPD3EiEnzsRfh7A6RH0HqtQXW25HCys4YK+wfz60Hn89+pB/PfqQfzz4mRqrXbu+XI7l76+lp05red9KKu1snRfoYrif4cUVDb8z32vTqckc3cp0f0D0OkELyw5QISfO+/9cRhuRj2169bRsG8fgTNndmrleiEE4xKCWHeotMM36aBoC4VZlSw8tJDr+15PsMfxBy+dbpreFtqyXapKNe/fEqhZVLFnBWK3OslLLW+2WwBMep3KQ28Pk77rLJfSmkZKa60khHgT4GVm2tAIpg2NYMaYWJb9dRyvXz+YkppGrnhzLU/O30tNo53c8jqmvbWOmZ9sYfa6zFNug+K3w897Cxj13HIW7Tl2gqnfK1JK0r9dSUOtjdhBQWxIL2NXbiW3ndsbL7P2Il/20Wz0QYFYLr200/WOTwimzupga2b5ccsFR3vjsEqCbRH8qd+fTulauoMob03Q2+oYrS7Vpv/1DtDmnglP8ENv1hNaI5vtFgCTQa8sl/ZoslwausBySS2sAaBPiPcx+3Q6weeKZhQAACAASURBVMUDe3FuQhD/WZzC7HWZLNlTgARqGu2MiPXnmQX76RtmYVTv7l1eStH9lNQ08uj3uwGYszWXqQO6aVFfay0gwOgOLXO0bQ1grwezD7Qcgm6thYps8IkEczsdhVJC4V7QGcAzCDw7+Ht0OkCnx1FZSf4TT7A/xQ0RcR5BzsM886uNQC8T04ZEANr84LVr1hB0373oTKZOX+bouABMeh0L9+Rzdnz72SqNflq+9sXeV+PndvyRqGeCQPdAPAwebUfoJQ3o9AJPX23CMr1BhwhzIzbLzsiYloLe/aPbe66guyyXrnjiHSzSZntLCGm/R93iZuTpy/tz+eBw/vb9bsrqrHx922gi/N25/PW13PnZVkbHBaDX6bhoQCiT+4We8LqHiq6jqsFGdmkd/cN9On2MlJJHvttNdaOdSckhrDhQRFmtFX/PIwK2KaOMzZllXNg/lN5BnczAcNihaC/kbobcrdq/pQddOwWYPMHoAQ4rNLhsPaEHNx/Q6TXhrS/Tths9oO+lMPxWiBx+5BzlWbDg/yBt2ZFtCRfCJbPAu8XCxFX5sO1jSF0C+TtwWBLYN9eLTK+R5EWPx782h7w7/kbesBnMmDYGt9R5sPcHyj7fgjDq8b38xJZ/8zQbuPSsXmzYuh1b1ZMYy9PAKxhixsB5/2h+aH2R/xFhuvH0cww5ofpPF0IILdOlqm3Lxc3HRL3NgafZQElNI1vr6hgkBX4tTBCzXnWKtoubsessl9TCarzNBkItbh2WHRrtx6J7x2J1OHEzag+Vd/8wlEe+283Bwhoq623M35nHiBh/zk0IpLTWSv9ePkwbGnHK7VR0nheXpPDphiw+nzGyVWRodzi59+sdVDfYSQr15qxIX86JC6Si3soLi1NYtr+Qf1zUl3PiA/l5XyELduU1d+jtyKngjx9uot7m4D9LUkgK9Sa5l4VBEb5cPzIKY8tOcylh+6ew8yvI2w42V+qeZxBEDIeB14DeCNY6Lfq21WqRtVcomDyoLqkhK9tMcmS2pnmWXlp0nrUW9v4Au76CxKmQeCFk/AoHFgACJj4FPhFQnAJrX4E3R8HoP0P4UMjbAb++qLUlYhiMuov8n3ayts9dOA1Geps2MixkBYUHbLy07jV6ezwLPtVY7UFUpRnxja3C8PG5MO4RGD5Da39L7I3wywuw+X0wuIGHPwTE8zd9IGbd58gsAyROhOp8WP1f0Jtg/CNkVmayOHsxtwafQ9Xhdtb0sTfCwaXa9RcfgN7nwYCrwdJNb1BtEOkdSWp56jHbC/Jq2F9Vx/gXV3H3efF8uiGLBmsjgzBRkFGJJVCzYkwGHbXWY7NkupIeK+hNEXpXWS59Qrw6HVHrdAI33ZFOofhgb+bcqc2NbHc4+XpLDi/9nMqmzLLmScQa7U6uH/nbScP6PWN3OFmwKx8p4Z6vdrDw3jEEe2sP6/fXZLBgVz4JIV5sSC/FaneiE6ATAqNex70T+nDLObHodILEEG/m7tAEPb24hltmbybQ28Q7VyeSs2MZRZm/sjXFn7e2hWFzjDky/3dtCfx4N6QugpD+MOSPmoBGDAPf6NYWSxuk7yhmxcr9NNbZcR99PXFDWnQQDroWpjwHG97SBDtlIXgEQr8rYfwj4NsiA6P/VTDvL7DimSPbki6GSU+Df2+kw8HuD/6Fw8/M9Dt8CKj3w5EZiqhNpXSlJzkr/fCfdh1l81Yg3HX4PzEL9r0Fix+GrbNh1B0QM1YT5pyNsPol7U0k6WJw94O6Uijah39ZOrvcBvMP50zmXHktJr2AuXfCqucgOJnZFdsw6oz0TYwhbV0ZTocTXcuHY/ZGmHc3lKRqDwrfKFj6T1j2OEx4DMb89RT/YjpHjCWGFdkrsDlsGF0PM7vDSWlhHY1uOiL93Hh83l48TXrev3UYu17bS0F6FQnDtTckk0FHRb2K0Nukq/LQpZQcLKxmcr/Qjgt3AoNexw0jo7lmWCQOp8SgE8z8ZAv//HEPoT5mzk8K6ZLzKNpnfXoppbVW/npBAm/9ksZ9X+3grRuGUlrbyMtLU5nSL5S3bxqKzeFkV24Fv6SW0GhzcMuYWEJavKVdNrgXLyxO4al5e0nZuoI7dDv4gyUTt093kOzKR74JwA32LO+DTfwRY/Fe2PcjOO0w+TkYeUdrLxwtm6Q8vxa9QYeHxYTD7qS20kp+WgWHthdzOKWcoChvaisa2b8+v7Wgg2bRnPuAFiVXHobg5OZz2KwOjCZXsBGUADOWQF0Z5O8Ek1crm6Z86QpyvAcR2UsScNYwYBirfK9ixs7NfPxSFOFP3U/J5z/hMXIkvf71rDbx1NBJkLIIfv47zD9qBkTvMLjua0g8KqXR6aDsYCm7PtrMT7vyuHJIBFw8C0oOUjz3duaFB3Nl/OVECV9SfimhbOsaAoOAogOQvkp7aPlEwvQvIX4CGMxQkgYrn4FlT0BjNZz/zw4flKdKjE8MDukgpyaH3j7aw/vj1RmYHTCifzCzbu7Psv1FRPi50zfMQmGMhYJDlc3Hm5Tl0j5NdsepdjKU1Fgpr7O12SF6Khj1OlxN5PXrhzD93Q3c9fk23vvDsHaX71J0DfN35uFlNnD7uN708nXjwTm7GPXccgK9TZgNOp66rB+gfUdDo/0ZGu3fZj1XxOtp1H/HlVtWE60rQqJD6AfD2fdA73GakJalk7VzFfrNn2Fc9g8wWzQrYNSdENy3VX015Y2s/e4gOfvKaKxr+9XbN8SDkZfGMnhSNJvmZ7D95yxqKxvx9DmyQlDOfs1Pj+zrr0XCLgrSK5n70nbGXB1P/3EtLD4Pf4g775hz7flqPTa3MQy5ZmDztgW787G4GRl9dn/EF59Tv3Mn3hMmHBlEJAQkuayekoOQtUbz+CNHQHA/0LchKTo94xKC6B3kyTdbcjRBN7rBdV/y2Y/X4bAV8sc1H+Fd8y3wOkVzZhHosdx1Q6I0y2j8I2Bu8X80MB6mfaDd7xb2TXcSY4kBILMyk94+vSmubuSjn9O4DiPD+wUhhGBi8pGALSzOh62Ls7A1OjCa9RjVwKL2aYrQG2ynFqEfLOy4Q/RU8TQb+OhPw7nx/Y3MmL2FN28YwgXJXRSp15VpnWxVeeCwQdJF4HP8hQB+S0gp2ZVbybL9hezKreTSQb24fHA4ep0gt7wOH3cj3m5HebUOOxz4SfNSK3M1Ae09DtDe2BbvKWBSvxDcjHquHhZJci8LH63N5KddeTx35QCCj+4rObQSDi3X7p/Trv1bW0LYwSXcZ3RQG34ODH8SkTgV3H1bH+sVTHTUKK49fC720kM8ed1EdhdZKd7dSEPDfjz0OvpE+tAvyIs17+yjsqSe+KHBRCRo9dRWWTEYdXhYzPj38sQ/zLO56r5nh7FtSRYpGwoYMlmb8a+h1said3bjsDq56M8Diep3JJNl808ZOOxOVn9zEF99FQE+DkyRkeh9j2ozULt1K+mOOPw8rYQnBTTfu6X7CpncLxSTQQfBwRgntjMXixDaG0BQQoffsVZcMD4hmM83ZtFod2A26Kk2ufONqGNiyAgifd2RlnDc5knyo/5C8kX3aWLuF9N+pTo9XPKK1pm86nmIPReiz26//CkS46O1JbMqE4CFu/MxNWoC3eSTtyQk1oJ0SooyqwhP9FMR+vFoHil6ijcotVnQuzZCB7SOsYpsMHkR6BXAV7eN4o8fbeaOz7by70vjmeZYpPmMQqd5gyZPV8aDpxZV+ffWXpPTlkH6Sqiv0P54PQPBP04TtJRF4LQdOefih7UOI//eWkTT9AnuC1Gjtf8EoKXHZa+H/B0QmKhFWJ4dTIIkZevX2ppirW2HlmudfeMePlbwjkNFnZUHvt3Fsv2F6ASEWty4/9udzFm5kTD7YexVBdQH9ufVu6/F3aSnusFGen4Jg9b/VfOnETiNnui2f8pSyzTWRt1BcKA/dQ0N3GrZBN+/CdZa+ukMvDhiJv+5akrrfpK87bD0ccj4BfRm7TvQG7TOSYMbjLgdMeJWvPx7t3sNTdx7QQLXv1/OxW9vBcDbKbi61oTJIfjWlMUKqSPKoeOSuwcRldy59FbfEA/C4nw4sD6fwZOiEEKwe1UutgYHPkHuLH53D1fcP4SgKG8KM6vI3lfG4ElRpK7JYsn7exm+5XmM9jq8Jk0md/yfqSxpZOItyeh0sP2l76j1voARl/RuvidrDpZQ3WDnom5K1RwR68+HazPYc7iSodH+vLvrXWpsNfxpxP0Q0A8BhKftJjejChlzduf6tISAqS9C9gb4/na4c42WHdQNWEwW/N38yazMBLSFsOM93KBWtinoob21duSnV2qCbuj+gUU9V9CbRoqeYqdoalENFjcDwd5tL3p7UtSWwMIHIG05NFZpAj3paXyH3cJnM0bw1Owf6bfwStDlIPVmhHS2FuW28A7T0s/0JsjdomU6uPvDiNug78Wax2hvhJ1faB5u3jZoqALZ4g3GI1AT9tpiKM8Ee0Prc4QN0jq0Qgdo/ymq8uDQCji8TctMaKzW9oUNgoJdmiA21VtfBnu+hyn/gqRLwOBK9WvxEJBSsjO3krS8UnwzF5KbugOfxmBeHDOWC84dg8UImXP+TvShz9DjBBPYKvUsf2c9/a54kP98voCbaj9E6g4iLnyB7ziff87dzcP6L/hj1XeM2z2XXTKO1W6lhG0o1TJGPPy16903FxF/gWYV+MbAjs9h7/faPZzyPAy7RfNm20FKeVyBGR0XwAvTBmIy6Ig1GNn2WSp2k5OIZH9M24uRTslKi53z/YysTSvhh+2HuW5EFEOjj1gm1sxMan79FWl34H/TjQijkaSzw1j56QEObSsmMtGHHUsyCDUUMcyriFW2Ifw4azvnTk/g4JYizB4GkntVYtgwiy0D7mHH5BcYZtnPts1F5Fq1qV89vI3EOvazx/0cAn0dJI090lGv2S0GzjlOvvipMDxGu9ZNGeXYTKnM3jubaxKuoV9Av+YyEUn+HNpWTGVxPb7BHp2r2OwFV74HH06GRQ/DFW93R/MBzXbJrMqkss7GhvQy/uIXgKGyHnfvY9cudfM04hfqQUG65qOfjlXWeqyg63UCo16ccqdoenENfUK8uy5nPGM1fD9Ts0LOug5CB8L++VqO8Ob38RY6XihNo9Zo5g/1D3PuhdO17AinQ0sns9Zqn9oSKDuk/Rt7riaiLdtot2rRtu6oIdgTHtM+oImpvQEaKrUIZv88qMiBwD4Qf4FWb8RwLcUtex2kLIaV/wJaDHl394PIUVresNFdE/G9cyE4Scsj7jNRu8b8HVpGxZxbtGOiz4GydChJRXqFkqmPIq1KT53VwTjdHoJEFU4EOoOELW/CVh0YPehtrYWhN0P/aeDux6Ef/sWUwk/g/U94FbDpjNxlvQfbgSEs25/K2D7hTLjyE6jejdz3E7Epv6IzB8H590KfSdo9s9XDxndg3atH8rSNHnDuQ3D2X8DNctyvVErJj7N2UF9tZfQVcUT3D2j+eylIr2TeKzsIjPQitq8/+WkVrDlQjqePmSsfGEJAuBc15Y0cyqzg00V7uPi1NThc837/tCuPt24YynlJweT/859UfDun+Zy1a9YQ/uorxA8NZteKXJa8twffhlysbhFE7f+aumUHGJI0lP2Db2fph/sAGDzMnaJ7/0yAry+X3JHEim+zWZmfDBHJRGUvxdx/ALt/gVSbROh1TLn/7OZsEpvDybJ9hUxMdtkt3UCAl5m4IE/WZWQxp/hZYiwxPDD8gVZlIhI10c89UN55QQets3fMX2H1i3DW9drfdjcQ6xPLiuwVLD9QiMMpCTUYcAa4t6sfoXE+pG8vRkqpJufqCLNBf8ppi0VVjfTtdfz/0J3mwAL4+ibwj4Xrv4EwV2fTsFtgy4daBOtmQUSNwnPMX+G7PF5fmcY1wyOxuBmP2CMAAXEQNbL9cxk6MVpPuEYiGt2h3+Xapy2iR2ufsfdrNkplthbdu/loD5KjHxptET4EbvtFs192fws5myAwgaKQMezaf4AwaxYDTDa8vPXoQkbRMPI23OLHaaJfvF/LaKg6rIl5xLDmahPv+Jw3P/oQY9FOLrlgAoF9RqBfkM+iXflcPDCMl645SxMgv5GYo0ZibmvOKKM7jLkPzrlXO0dpGgT1Be/O9WNk7CzhcEo5bp5GFryxi5iBgUy5rT9CJ/j1q1QMJh22Rgeb5mfg5Wdm+EWx9D83HA+L9h15+ZkZ5BfCx2Ee/GdJCpP6hTAmPpDbPt3CzE+28NYQExHfzsH36qsIuP126jZuIv/xx8mcPh3fyy9nQpyFX3dmUhA4jF7BToa++jV1GzeR9+ij9P/mLkouuo8iXTjeb/4dXYCFyPffwxQZyfTEUNZ9fwgvPxOhSxuomv8sJQPvptwvkfMmeeMTdMSv35xZRlWDvVWnXncwPMaPBYX/xmAo47Wpr+FuaG1V+AS74+lr5nBKOf3PPcG+oHMf0P72FtwPd6zt3P+REyTGEkN5YzkL9hwi1OKGqHVgCWh//EpghBf71+ZTX21rnsulo7e9U6FTgi6EmAK8AuiB96WUz7dR5hrgCbTwbqeU8voubGebaK8wpxahF1c3cq5XF9gtacvg25uh12C46YfWUZ8QWorZ8BlHNgEPTfbm4tfW8M4vh3hwchJSSqSkwzUbuxWvIO1zAlTWa5P5+3maIGEydTET+GZzDvN35bN1TzlhPlN44aaB9Gsruyc4Sfv0O3YXaJ1pd/7pluafAWZdG8IfRscwNNoP/YncKyG0QTc+nR/kJZ2STfPT8Ql2Z/o/RrBrZS7rfzjEqs8OEBrnQ3F2NRNnJJMwPJSGGhsmDwM6nUBKSemHH2HNzCTwz3dhDAkhMdSb9/945GH15cxRzPhoMxUvP0uYjx+W+x/ib0vT2Z7tz8cvv0bjrBcpevG/AAweOBBumkZI/wh0JhNeY8fQe96PlLz+OuLrlwlyOPAYNozw117F4KdFuWYPI+fdmKRdx9SXsBcXE5mdR2mZJHbS4FbXuXx/ESa9jrF9uncxCaPvFqjZzbVxd5EckHzMfiEEEUl+ZO8tRTol4kS+X6O75qd/cTWsfx3G/l8XtlyjqWN0Xc5+ruo3hupfywiLa9+z9/LTxL6mvAGTQae9NDslRv0ZEnQhhB54A5gI5AKbhRDzpJT7WpTpAzwKnCOlLBdCnJap0tyM+lPypOqtDqob7QSdqn+etx2+uhGCEuHGOR2+wjfRP9yHSwf14oM1GVjcjHy+MRsfdyOfzhiBr0fXRxfdQdOkZeW1Nh6cnEj/cAsPfLuLjJJakkK9eXByIjeNjtbeQNogN6WczF0lDJ4UhaePWRPCw7V4WEzNEW6TkDsdTqrLGvAJ8mBEbNuphm1RW9HYPM/G8bDbHBSmV9Erwbf5nAe3FlJ6uJaJM5IxmPQMmRyN3eZk808ZpG4qJCzehz7DtKjWzUu7Rul0UvjMs5R/8QUIQeX8+QT9+S78Z8xoFZl5uxl5La6OstJ03h08jT0fbiOtuAaTXsefU7z5eu6PZB3KZdGCDVxx3SSie7We48Tg70/oY4/hd+NN1G3aiO+VVyLamWdFCIExOBhjcDBH/3VKKVm2v5Cz4wPwNHffS3tWVRaL89/BXhtHiHNSu+UiEv1I2VBAaV4tgREnmH2WMEnrB/rlBRhwlZYp04U0pS7adIVcEBfEnsVFeLfRIdqEl5/2d1dT3thsZdkcztajiruQznx7I4A0KWU6gBDiK+AyYF+LMjOBN6SU5QBSyuPPaN9FmA26U0pbLK5uBDi1DtGGSi0y9wiAG39olRfcGe6flMDC3fk8t+gAgyJ92Z9fxY0fbOTzGaPw8WhbBH8rNNgc3PrxFoqrGzkr0pfH5+0FINzXnS9uHXncyZgaam2snXOQA+u1GQ0PbMhn2IUxZOwsIe9gBQgIjfVh2NQYovtrWSGrvz7Inl8PEzc4iNFXxuET1LHHum9tHis/PcCU2/sTN7j9OENKybKP9nNoWxFnTYzi7CvjqC5tYOOP6QSEe9Jn6BErYvhFMVQV13NwSyFjr0loJdLSaiXvkUeoWrgI/xm34Dd9OoXPPU/Ri//FEBKCzyWXtCpb8+osdJGR7DxrPGU1jcz+0wgabA5u/3QrV765jtTCauxOL7YvPsjHt4xos+3m3rGYe5/cIsp1tjp+OLCS3Pp0bkg4Nlf9VKm2VvPS1pfYUbSD7Kps3Axu+FTfxJasSv40pu1jwl0++uGU8hMXdNA6ud8YAYsegeu+OIXWH0uYZy+QOnwsFSR4ubEHjmu5tIrQWyyb2V3xWmcEPRxouTpqLnC0uZsAIIRYi2bLPCGlXHx0RUKI24DbAKKiTv3JeaqzlxXXaFkeJx2hS6mNlqvIgT8tPGGrAiA6wJNPZozAzahnSJQfK1OKuP2Trdw8exPf3D66257kXcET72wlK7uSWX8YwuR+Iczbmce+7AomuHtRtiKfrWk1hMX74uVrxuRuwM1Te0DZrA7mvbKD0twahk6JJm5oMKs+T2HtnDTcLSbOuSoeW6ODlA0FLHpnN1c9PBRrg4M9vx4mLM6HrH1lZOwu4cLbBxAzoP2HhsPuZPOCDAB++TKV8AS/5jYczY6lORzaVkRQlDc7lmZTW9GovfZLmHBzcqtXf1lXR8KWNwlavQmreQyNd96JuU8fHDW1HL7nHmrXrSP4wQcImKFZbBGvvUrWjTdR8NTTeAwfjjFUG5Vc8v77WNMOEfHmm8w7ZywOh2x+iD84OZH/LEnh2mGRBFvMvLYijVUpRYxP7PzL79bCrby36z1ya3Ix68308uzFpJhJDAoaxJ6SPazNW8uyrGXU2evwiIbX0t5lWVlfLo+/nNG9RmPSm/A2eWMxtf/G6XBqAZW+jX6WjMoM7llxDznVOYwNH8uY8DFcGHsh7y5tZPXBEhxO2aZl5u3vhk+wOzn7yxg0IfKY/R3iG6ml0C57XEvrTbzwxOtoh4W7i3BYA4jrVUdpjjZLa0B4+w8ddy8jOoOgpqwRU7j23XZnx2hXvV8ZgD7AeCAC+FUIMUBK2WpFCCnlu8C7AMOGDTvl1QPMp2i5NEXoJy3oO77Q0gcnPA5Ro066HWfHHRGl8xKD+e81g/jLl9v5cE0Gt4+LO+l6u5M1OwsI31PNjEAfpvTXBCrZZqBgWTGbrYV4+po5tK241TGRff0Yd30S6384RHFONRfdOZAY11Jn0x4cQmFGFYFR3s1D1/uNDeebZzex6O3d6A06vP3duPgvg7A1Oljwxi6WvLuHKVPcsFRlYC8tw3P8OLbuM1FfZeW8m/qSuqmAmrJGRl3em43zMlj7XRoT/tB69Ka1wU7KhgLW/5BG3JAgJt/an1VfprBvdR4B4V5Mub1/q2wLW34+OXfeRWNqKoEXXkjNypVULVyEzscHYTLiKCsn7Nln8Z12ZfMxQq+n17+fJ/3yK8h79FEiX38dW34+JW+9jWXqVLzPPzYy/vN58dw4KhofdyONdgfzdubx7IL9jIkP7HDlrB1FO3hjxxtsyN9AgFsAw0OH0+ho5EDZAVblrmou52X0YnLMZDbviabRYef6sXp+zvyZ5zY916q+eN94hocO58a+NxJlicIpnazPW8/izMWsyF5BrE8sH035CKPOSKOjkXmH5rHu8DrW5q3FTe/Ge5PeY3jokSkHJvXLZ+6OPDaml7b7FhfdL4B9a/KwWx0YTJ3olD+aUXfBzi9h0UMQMaLjqYQ7QYPNwX8Wp+AVFEajKCA/rQJ3iwmf4PYtF6ETePmaqaloxBSl6Ux3pi52RtAPAy0fkxGubS3JBTZKKW1AhhAiFU3gN3dJK9vBzaCj8RQsl6JTEfS6Mvj5H9pgnXPuO+k2tMUlg3oxb2ceLy9LZeqAMCL9TyB96zQgpWT+96lEIaCkkaKsKvzCPFn97UH8Qj0Zf0MiwdEW6qutFGZUUV9jo7qsgR1Ls/n88Q1Ip2T05bFE9j7yqqrT6wiLbz0oycNiYvJtA5j73204nZKL/zIIk5sBk5uBi+7ox7f/XMWS76vov/dL/CoOsvHnArJ6aeJYXdZIbUUjIbEWhkyOxtrgYNviLGIHBtL7rCCklGz6KYMdS7OxW50Ex1g4/w99ETrB+OsSiRscRFi875F5UVzk//3v2HJyiHznbbzGjsVeXk7V/J9ozEjHXliE37XX4DVu3DH3zBQVRcjDD1Pw+OOkjhmL3scHvYcHIX//W7v32cddi+jMBj0PTI7jr/O+4t6FexmfGIRAUFzdSGFNJSa3CkrqSwAorS9lW9E2/N38eWDYA1yTeA3uBndsDif1NjvpVftILU+lf2B/EvwSWL6/hE8zt3LP+X24dUACtw64lQNlBzhYfhC7005JfQlbi7by/cHv+SblGyZGT2Rf6T6yq7PxMnoxOHgwqw+v5oPdHzBzwEwe+uUhVuSsIMwzjKmxU7lt4G308urV6rrOSwzG06Rn/q689gW9fwC7VuZyOLWi2XI7IQwmbb6YTy6F98bD9C+0MRQnSZ3VztM/7SOvsoFpw5NZkT+HvLQKesX7dJix4uXn5uoU1f6+u3NwUWcEfTPQRwgRiybk04GjM1jmAtcBHwkhAtEsmPSubGhbmI16Kus7GJBzHIqrG9EJCPA8CUFf9rg2aOiil46ZfKkz2KwOls/ex+CJ0YTE/j975x0eVZn98c87PVPSJr1AQggtdJCioqjooiiouAKWxYKuq1h3Laura3ddXRXFn2Xtugp2UVEEQUAFJEAIvaf3OmmTae/vj5uEhARIQsIQvJ/n4Unm3vfe+96ZcObc857zPa0faR+ZmsKk51by4FdbefuaU04obfWfdxUTVuRGExWAtsJN2tIswnrZqHO4mHzjYCJ6K/cTYDM0eeCglLL/8ukerCEmwhfPY8+9PxE6ezb2G+agtbVdqRudFMR5c1JwlDjpnWLHW1VFXVoaZe+8y5CNu9l86v1sGn4HoRFGyorqiSteKx92WgAAIABJREFUS//rL2TFt6X4vJIzr+iPEIJTpiSQs6OMH97cxtTbh5O1tZQN32eSNDKCYefEE9UnsOk9FhrRZjVnXVoaNb+uIeKee7BOmACALiSE0D9d3a73LWTG5RiT+1L51SKqV64k6pGH0dlbXsftc7MqZxVLM5eypXgLUZYo7CY7P+f9TEB8FavKYNWaluc16yxEWSIRCDQaDXeNuosZ/Wdg1iuOgJSSv3ywkVW7izkvJZJLR56JWVr5bksRdy5MY1hcMNdPOBiDHxA6gAGhA5pe38ANlNSV8MaWN/hk1yekhKVwy/BbmNR7EgatgXtX3ctrm19jZ9lOlmcv595T7uXKgVce9m82wKDl3EGRfLe1gEemDm4z7z2mXzA6vYbMraWdM+igpOJe+z0svAreOBfG3KCkxdo79tT7674S7v4kndyKOq49LYEJ/QL4df8SqsvqGT7p6JXR1hAj+XsrCdMdjKF3F0c16FJKjxBiLrAEJT7+lpRymxDiUSBVSrmoYd95QojtgBe4W0pZ2h0TLs6uIn9vBUPOjFPSFo9xUdRuNXYs9Q0UOc+N7ykiTZGtU6/aw85f89m3sZjq8nqm3zOq1R9/THAAfz2vP499s52Zr6/lyUuHkNTehgpdyK51BaQty2La7SMwWfVIKfno052kSMEfLutH3s5y0pfnkLW9jF4pocT0DaZm7VoKn/oX4bffhu3ss5vOZQs1MfnGITi+/57cH5ZgSkmh9PXXqfjic/p89RW6UCVz5dA83eC0b5ELFrDrwUp8lUrVnTAY6PXAfcROHknOb9VsXZZH0iAriZ98j3hiMX946CXKvCH0SlHOqdNruXDuMD5/diOLXkjD6/ExaEIMExsMfnsoefU1tEFBhMy4vNPvp3nkSMwjDzZx8Pg8aIUWIQQOl4Nbf7yVjUUbCTIGMSpiFCXOEjYUbmBC7ASmJE7ljeW1rN5TghCS5AgbuWUehiXG8frFpxz2ml+l5bFsRyETksNYvaeEb9Lzm/aN7h3C29ee0lov5xDCAsK4b8x93HvKva3er/vH3s/6gvX8mPUj16Rcw1WDrjrq+3DRsBi+TMvjl70lnDWg9bqATq8lbkAImVtLkDK58w5N3Ci48Sf47m5Y87JSXHba7TDpkXarMz68aBsaDXxy03hOSQhFykGMkT8BEJpw9B4K1hATNRVFRDdcz+8xdCnlYmDxIdseava7BO5q+Net5Ows59fP9jJgfDQm/bH16Cuuqie8Azno+9OK0eo19F73MNhikGfcg9vpwWDq2FKEzydJW5aFzqil8ICDzK2lbS7uXXdaAhaDlicX7+D8F1bz4IUDuWpc7+Pqracvz6Yku5oV/9vJ5BsH8/nGHOz5LjTBJhJT7ITHWElfnkN9rYexU/vgq6sj/4F/4M7LI+fmWwieNZPw++7l4/2fE22J5jTrUAoefQxTSgoJCxdQl55O5pVXkfXfl/lykoUNBRvYUbaDs+LP4qHxD8EPqyn697/RjhiCZuwwqqwaVgUX8oVhKxXOJ+HLJwGwDrUyOnI0s/59K+H3v4L773Po+9CDVH2/A095OXg8IDRccOVZfPNeJjHJwZw5SzHmBTUFlNSVMMg+CI1o+2nLuWMH1T/9RPjtt6GxWFrsq/PUYdKa2v251Hvr+XDHh6zOXU1aURpRligu6XsJ32V8x4HKAzx22mNM6TMFvaa1kR17pZf7PtuCAB6/ZDBvrj7Af5buZkNmeQsZgUZKqut55OttjOgVzDvXjsHt9bEpq4Kc8lrq3F6mj4zrUKpiW/cYZAzixbNf5LeC37gm5Zp2nWdCcjiBJh1fb85r06CDEnbJ2FJKRWEtIVGWNse0C1skXP4eVBXA8scUHXlzGJx221EP9fkkGaW1XHtqAqc0tJMTQjBB+weytBV8XfkpN/OXI57DGmLE55NoXIqt8nfI5YTCYGpoPVfnPea0xaKq+jbj521VcuXuLuf717YgJZxmC6Pv5EtZ/tpe8vZUcuGtw5pKllucxydZ/+0B9m4ooq7ajdGsY/KNg6korMNR4uS8OSms/XIfv319oEU5eSNCCGaO6cVZA8KZ+9lXPLhoE9vyHDwyLaVJy6arkFKSu6ucraty6ZViZ9BpMVQU1lKUWYU9zsr+TcWs+mofqcsziPNqmDAlESEEtlATwyfF43H5KLfls+eJFwjNzSXmv6/h/HUtZW+/zYa9q3jqnEK0PnjgGxODKuv4+Z5JeLe/jclkImpUHKEffshnoUb6xg3jwj4X8vW+rynftJ473yplby8tj5y7Ha92B6AYkHN7X0isNRar3kqVq4qCmgKWZS3jp9yf6D3Lxt0LwHff31vdpyZoPtHX/4Ftg0PZmb6CtKI01uWvQyKJscQwte9UrhhwRYu+ljvLdpL1+G1EBegR06c0bfdJH/M3zee/W/5Lckgy05KmUVxbzC95vwDQP7Q//UOUf4lBidgMNjIcGTzw8wPsr9xP/5D+XN7/cnaW7eTFTS9i1pn5v3P+j/Ex4w/7ORl1Wp6fMbzp9fUTEnl3TSb3fZZOmNVIek4Fve0WhsUH4/X5SMuuoKbey7+nD0WrEWg1WsYn2YGu7X87OGwwg8MGt3u8Qafh/MHRfLslH6fb2ySH3ZxeDaGWzK2lx2bQG7FFwUUvKdIaSx8EWxR1iRfjKHG2GfYEKHA4cXl89LK3XMdy5erwRlTxzva3sRosjI0eS3JIcpsOQWMuOnWKrfK7h34iYQhQpuxyeo5Z7Ka4qp4BUS1jt9nby/jm5c0Mn9SL0VMSqKeOZTtXUPiehcDwAMJ82/ml5FrWfikQohJLsIHvXknn0rtHUWsrZ9H+RXh9XkL0oXhXRFCzXUdgohZDtAvHHslHT6/BY3RiDjbTe3goXrePH9/dwd4NRWSFb2V3xW56Vw1Euy8Ee0QQtnAjn2d/THHdYoZGRbB78wiuK1/N6aM1VLmr8Pg82E12pvWdRjB2svML2JC9iTzzPrJrs4gPjOe0mNMINgZTWFuI3WQnJaxlWWburnJ++WwvxVlVICBrWxkJQ8LY9VsBCLjwlqEse3s7W7/PIkII+l8US3bsFt76Sali7JPYh62lW8l682ee/tzLiqGC/2bcTvKgZE4/P5Jzv8vj+ZgxhORVYd6+g/+dZ+Rrx5f4NimfXdJQDU+lwgd1V5F4vqLtMSPmAqpm3kClVbD37kv4Z8JIdBodwcZgxkaPxaBtnch775h7WZa5jN8KfuOt23Zh3pOLxxZAhijFaLLxRP+7KHv0SWKf+5jCJMHb52rQxcdx07CbiLXG8t2B73ht82u8v/19Lu9/OR6fh/TidOS6Tfxjg4+Pz9Dy/bIZTE+eTmJQImvy17AkYwmTek0ivyafZ1OfRa/RMzpyNAatgdSCVL7d/22reUaYI3ht0mucGntQ6jWjMgOtRku8rWNpemaDjnv+0J97PktHp9UwbUQs2WW1LN6Sj0mvISY4gH9NH9Llev9dwRn9wlmYms3eouo2e78G2gMIjbGwP62YYefEd82TqUYDl7wG1cVUfvE4XzmjqCr3MOj0GE67rG+rp+3MUqV1YO/Qg18ozmo35fk1jDp/EL8SyzOpzwAQagplTNQYZqfMbvHl1piL7qtRNPBVD70ZemODh+70YNR1Pm3R55OUVLf20PP2VuDzSjYuyST1593kGQ9gqQvG5tTzdf+XSKlPp3/gbVj1YznvyqFodRoWPLWW959dyddJr1ASmI3NGcoZe2cS69DxW/w3bIxcCgIs/YKZtnMugdXhLE/8mC+/+g/T+15GYHR/lrydzvd930IA5+5OQop8dD5lGSKQIfyRgyv0RTVZvKJ7HpPeiMlnITZ3EHklBiKqezeMsOI29qK+TzEf2z7n7a1vt7jHi+yXcoZuMnvyMijPcmIv6I3bXEv+iC3kmPcy7tdZPDhvHjHlydjiTZRqCvk5bjdlRQ4qB27gw/KNOFc7iQiIwKQz8WPWjwQbg3kirTc6SxF9H7iXP3my2VG6gx8m1DDGewqxX/0GQhD1yCM8PuNyHpMSt89NnacOnUZH6d47cX74Gd5rbkRjsxH03IdoagUJHy3g9MGH0QU4BIPWwAV9LuCCPi0bGe8q28XNy27mql33o71c8HThOYz+eC2j3nJjGhqOt3gRvro6hoaH44oex8enSt7e+jYmrYmB1iTuXBmIrncgVz4+j5ItL/PBjg/wNqhY3jXqLq5JuQYhBNlV2dhN9qbFSIAKZwW7y3eTVZVFjbsGgEuSL2mV291YUt4ZLj8lnqnDY9r0ck9kkht6EOwrbtugQ+NC+l52rsln4KkxbY7pMDoj5ae/xFcvbMJDFSkT+rDt5zxyd5dz2b2jW9QqZJUpn1nvBg/d55Ns/yUPgAGDevFF8hcU1BSwLn8d6/LXsSxrGS6vi3lnz2s6hzVUsTHeaiWBQ/XQm9HoobvrvJj0nddyqahz4/HJVga9oqiWwDATxnPK2Ph9FhFEExocStA4D4PLHKzTGllsewN4gy/XDyHKEsXGxG1M2fkXLt16FzGDbRTvrUVKyaAZoYwdeAU+OZNQUyhhAWGYPBb2bixkQPzlvLfzXealvYAp1sL5VTcyefccNEKDOUZD1blb+TFnBZUldVzXdw7jQk8jINBARmY+mz6BIVue5h+3jmXz+7spza1B2uvI7bWJ+NgoBocNpnCtDeuOEFKYhM4GumAfZouRsuIqKDWxjzo0RBKkryd7wEZ2x6/BHBBAREA4dcl59Nk9CoAf9B/y0pfr0Holw3TQpySOM/udy7jRFzMqchRajZZ6bz3eA5lk/nMaYTffzMBhl9G8sFte5Kbo2f9gHnMKtnPOAZRwkkFraPK0NTffTMYVV7JvyhSsZ55J1dKlRNz9NwLaacyPRP/Q/nxwwQc8t+E5Lul7CafGnor7miKK583DdeAAppRBCFMAnpJiWJ/OZT/VMHvWHwkcNYa6deuoKNhMzDvPY4kYwEvnvITH56GwthApJXG2g7owbXnXwaZgxkSPYUx021WeXUVPM+YACXYLWo1gT2H1YccMPTuejC0lrFq4h+ikYIIjjz2F113v5Zt3C/AZArnEfBf2hBtIGnEVi15MY/OP2YydelD/PqO0Fp1GEIhg2+pc0lfkUJZXQ2RiIJEJypdylCWKaX2nMa3vNMqWlZFfk9/ieiaLHq1eg0c16K1pfCRq9NDdXnnYirMjUVTVdpVoRWEtwZFmPqqdT/X4ap6a9pXyqFe0g0te2YQcfR3ZE25jRfYKvtn/DT/n/swVY6/g6qvOZPePpaQtyya6bzBnXz2gTdF7gMFnxDGYOM5JPJtMRyZLM5cyYNIAqpbY8Li8/GHOYAwBZ3Irt+DxedBpDn5MMX2DKdxRz5itpXz5n02EoOGiW4c1dK45GN+VZ0gK9lVSsN9BcXYVNRX11Fd7iA4xEzreQFlEJuP7nUJ0cCTQspKudpSLDx5cg88r6dd3Glt2RPPcpp302bIVyAQysf85Au2dipEyao3kv/s+wmgk5KorW92v0OuJ/PuR24MFDB9OwoKPKHjiCSo//Qzz+HGEXnvtEY/pCNHWaJ4585mm1/rICGKefKLVOE95OUXPPkvl+x9R8/5HAARNm4Zl3MHCMZ1GR6y153SFOlEx6DQk2M3sKao67BiNRjDpmhQWPv4bP7y5jcvuHdWygXQnWPfVfhwlTi6+cxT2TUNhxRPE3345SSMj2PxjNkPPjsNk0bNzTQGeX4u5ttrEB/cruaIhUWbOm5NC35ERbQqHRVui2VG6o8U2IZTiIleVatBb0bQo6vQ061rkxWzo2K0c1HE5mHYkpaSiqA5jnJctJVu4b8x9ijGXEr7/OxitiIl/p5fFzuyU2cxOmd1iAXX8JSGMOj8BvVHb7nhf78DezBkyR3nx59b7mxvzRs67eiDv/3Mt0unh+wgv/bQeVq/LpMrpYc7piei0GoQQRPcNbirWqduylaJnX8TrcBA38yUMcYcvsjAHGjjr6gHkFFTzn1938q+scvps2Ur4HXcQMGIElZ9/Rulrr2Ho1Yvg6ZfiKS6m8suvCJp+aVPqYWcIGDqUhI8+ombNGgKGDDnYx/I4ogsJIeaJJwi/7Xa85WVIlwtTyrE/Jai0TXKEjd1HMOigLCqeeUV/lvx3K9t/yW+S1XU5PWi1GrT6tv9OXE4P2duV9aDGMfn7Ktm8IpshZ8YS2z8Uwh5V5AF+eZExFz7Avk1FbPg+k/paDzt/zcekA6dFy9jJvUkcFkZojOWI/7ejzFGUOctwepyYdAdtizXUSF2lS5mXGkM/yMFFUS8mY4NBd3dc7Katsv/aSheeei/bvWkEGAOYmjRV2bHrO6UF3Pn/blVCfOiH29EUxs5gCTLyx7tHsb+khv99s4Xr3kltsf+mQ+QCip57ntLXX0cbGor0eMiYNZP4V18loJmhchcW4tyxA9e+/WiDg+k1ehTvfPMzj/z6JYMKdmK/4QbCblK+ccwjR+ApLib/4YepS0/HtX8/0uPBfs01x3xvQqPBetppx3yeY0UfGYE+8riIhv6u6RthZemOQlwe3xEbaySNDCe6bxC/fXOAfmMiKdhfyeL/26LINkeZSRwaxrBz4gmwKYbAUVLH4lfSKc2twR5r5ayrBlCSU8X6bzOwhZgYd0nD/xF7EgydAalvEnra7fQ7JZLNyxTpqtFTEpiTuodLRkYw+oKEdt1PtFVp31dYW0jvwN5N260hJsoLlebeqofeDH2Dh+52ejBald+dnYijt1X2X1GorGivqV3JhQMvxGawKZ2BltwP4QOURhUnCPZYK/ZYK98mBpGWXcGAqECeXLyD55buZtLASPpGKAtO7oICSt94A9v5k4l+7DE8BQVk3XgjmbOuIPDCC7FNOofKL7+iaulS5UmkGVcBblsQEXf/jdDrDt670OuJfeEFcm6+haolS0CvI+TKKzEkJBzHd0DlZCA50orXJ8korTliX18hBKdNT+bTp1NZ/t5OMreVEhxpJmGonaLMKjYsyWTz8mx6DbKjN2rJbNBTH39JEmk/ZvPp04rTE9HbxplX9G/peJ3xN0hfCL/MY8xF/6A4q4rhk3oRPSKMql920KsD0htRZkXXKL8m/xCDbqTO4ULYVIPeAq1Wg06vachDV1ajO9NXtLiqngC9FkszrY6KIsWglxjymNH/EWXjhneg/ABc+SloTzw524hAE+elKH9Ej108mLXPr+TuTzfz6U2notUIKj7+BKQk4q9/RWu1ou3bl8SFCyl++WUqv1pE5eefo7HZsN9wA2VDx3DlD/lYqisZUrqfuIgg/vqvuRgsrf+gtYGB9P7g/eN9uyonGY2Ox57C6qM2ao9MDCR5dAR7UosIDDNx0W3DsAQpDllZfg0bl2RSlOHA6/EREmnm7D8NJDjSzKDTYtj2cy6RiUHENtO6b6KZlx50xt+44mFlvSQtW9EW7G1vfw58tEXx0AtqClpst4aYkD6IkE4mb/wzRP4V+rfVXuvY6HEGnapC9Hpv06IodE69rLiqnohAY4sPt7ywFq/GQ6/oaPqH9leaIq98GhImKD04T3DCbUYeviiFOxamsXB9NrNGRlPxySdYTj8dQ1yzLj2hdjy33UPynXdSu2ED5jFjcBsDuHr+L4jAYN7622TCrAYCTXr/dk9SOelJCrciBA0Lo9FHHT/+0r5odBpGX5DQZMwBQqMtTLqmbRkOk1XPqMkJRz7xiKuUBuvZ65rkdjNLW6YstodIi6Kbf2imS2NxUbSsJ77iN6jtFmUUTlyx7cOR9gGG+nxcNXWYmi2KdpS2yv5zc4qpMBUxtW9D7HzNy1Bb0iHdB38zbXgMo3qH8MKy3ZQuWYanuJj/Cx7O9e+sp97jxeeTzP1wE2c8s4KfC13Yzj4brdXKk4t3sKuwiv9cPoy+EVaCzQbVmKt0Oya9lvgQM3uLDp+62BxbqIlJ1wzqWAPp9hA7EjQ6xaA30FhU1JGQi0FrwG6yU1hT2GJ743yjfQ3Op+nwbeuOhZ5n0CNSMIhaXA5Hk4femUbRRVXOVimLRfkVOEzFnJ94viKP++tLMGiaIvDTQxBCcO/kARRV1bP7v+9QHRzOx5p4ftxZxB0L0nh6yU6+31ZAcICe2xdsIruslie+3c57azKZc3oiZ/breJMOFZVjITnC2m6D3m3oA5SG6Nm/NW3KLK0lMtDY4Rz/KEtUKw89MMyERiuwywaTqxr0BiIGYtDU4aquaZG22BGklBQ5WlaJ1rtd4NBjizARagqFPUvBVa0os/UwxiSGMj3cS8iudD6NHs1fzk7mH1MG8t3WAl5buZ8rxvbi85tPw+uVTH5hFf9dfYDZ43vz9wsGHv3kKipdTN9IK/uLa/B0Yzpfu4gfC7kbwKvki2eV1bQo+W8v0ZboVjF0jVZDUHgAgd6GdbiAo8vudoaeZ9CD4jFoXbhqXZgaY+gd9NBzyuuoqve0WIRZvWMtGqllcFKysmHfj4oiW/SIw5zlxGZO+SbcQkvxhPO4c1I/5kzow9/PH8Blo+J4ZGoKiWEWnr18GD4J/5gykIenpnRcRlhFpQtIjrDh8vrIKqv170Tix4DHCfnpgOKhdyR+3kijhy4PyRoLjjRj8jY4kd3kofe8RVGNBkOAHneNr8lD72ja4rY8BwApMUrpbm51Lu/9uoCxXMaYAcPB54N9yyHprE41r/A3vro6ND8sRjvxbF68ZVJTy7JD29n9ISWKLQ+fd9SWZioq3UmjQN6mrAr6+EHzv4m4BnmG7HVU2odSVFVPQljHPfQoSxR1njocLgdBxoOGOyTKjGazGZ/UoDGpHnoTBpsFl1uLUat4lB310LfnVaLVCAZGB5Jbnct131+Hrkr5Jg6PDoLCLVBTDEnndPncjweOxYvxORwkXnc11qNoXavGXMXfDIoOJDY4gG+35B99cHcSFAtB8ZC9ju2HOH0dIcqipBEfGnYJjjQj0FDhjQZD93xx9TwPHdAHBuPymTDVK6k/HU1b3JrnICncgkmv5d6l91LtrubCkOmUWdyYrHrY9KMyMOnsI5+om/FWVVH+wQfUHziAt6QU2/mTCb7kEoTuyB9b+UcLMCb3JWD06OM0UxWVzqPRCC4cFs2bqw9QXuMixNLBsu+uJH4MZP7KtiglBz0lpuOhkeYGvX9o/6btjZruhb4+hHbTk3+PdM8MIWH40GMq3Q10fFF0W14lKTFB7Cnfw+bizdw07Ca8JXrCYhu+Nfcth8ghSqcTPyGlJP+Bf1D84kvUpqbizsuj4MGH2H/xxVR8/gW+mpo2jyv/5BOcW7cSPGPmCdWHVEXlSFw0NAaPT/L9toKjD+5O4sdBVT55WXuJDDR2qoF8Y3HRoZkujUqRxd6EY57m4eiZBt3eUIBQtBfoWNpicVU9hY56UmIC+XzP5+g0Oi5ImEJZbjX2OKtSTJS1Fvr61zt3LFpE1Q8/EH7XnSQvX06f7xYT++I88Eny77+f3adPIPeuv1L57bd4iouRbjflCz+m4MGHsEyYQPDlf/Tr/FVUOkJKTCB9wix8vTnPvxOJU55qRd6GTnnnAHaTHZ3QtQq5mCx6dJpayj3dp9TZI0MuhuBgIA9ZlAH06pCHvi1PaTLcLyqA+zd8zdnxZ6OtMuFx+wiLs0LGz+Bz+zV+7s7Lo+CxxwkYNQp7g4aKEILA887Ddu651G3apOivLFuGY3GLVq9YzjyDuBdfRGPw42OrikoHEUJw4bAYXlq+hyKHk4jAozdf7hbClRCJ2bGflOEdj58DaDVaIi2RrTx0AKu+CIcn6pimeCTaZdCFEJOBeYAWeENK+a9D9l8DPAPkNmyaL6V8owvn2YLGrkXu4hwM2o61oWvMcCmRG6msr+TS5EspyVGKGsLibLB9NWiNSk6qnyh+aT7S6yXm6X8htC2LGoQQTZ3jo/75EHWb03Fu347XUYnGaCLk6qtUY67SI7loaDQv/riHD9Zlcde5/fwzCYMFlyWaREc+5k566ACR5shWHjpAoK6AvLrDS1cfK0c16EIILfAycC6QA6wXQiySUm4/ZOhCKeXcbphjK5okdEsKFL3iDjSK3p7noFeomSWZC4iyRDEuehzrUzMQGkFItBm++1lZGNH7x0PwOhw4vvuOoKlTW+qvtIHQajGPHIF5ZM/MlVdRaU5ypI2LhsUwf/keTk2yM65P1zaybi+lpl70qcrD3okMl0YiLZGkF6e32m7XZpPlG4ezxt2i1V1X0Z4Y+hhgr5Ryv5TSBSwApnX5TDpAU5MLtyBRV9IhD31rXiUDo838lv8bkxMmo9VoKc2pJiTKjM5TpRQV9PafHnfl118jnU6CL7/cb3NQUfEXT106hAS7hds+2tTUs6A59R5vt8sEZBBDkiafuODOO3V2k51yZ3mr7eHaA8BBqe6upj0GPRbIbvY6p2HboUwXQqQLIT4VQrTZulwIcaMQIlUIkVpcXNyJ6So0taHDym3yQ+pd7fPQq5xuMktriYuowSM99AtRHutKcqqxx1qVxVAkJJze6bkdC1JKKhZ+jGnQoC7ppami0tOwGnW8fOVIKuvc3PrRRtwNcgA7Cxzc+F4qIx5dyqTnVrJ8Z+FRztR5tjgjsFGHqOm8jbIH2Kn11FLnqTu40e0kTJsJ+Negt4evgQQp5VBgKfBuW4OklK9LKUdLKUeHh3dOBKqkroS0io0AuJKnc47vV0aXftmuYxvV0wwBygeVFJyEs8ZNdXm9siCa+TNoDU0r3ccbZ3o69bt3q965yu+agdGBPHXpENbuL+Oxb7azNbeSma+vJTWznEtHxhITZOKVn/Z1y7XdXh9rHQ1tFEv3dvo8oSblHC28dGclgdpCXJaMLml23RbtMei5QHOPO46Di58ASClLpZSNz0dvAN0mT/jl3i+545fbAHDHTiBVN5LpxS9D8a6jHltQqTSGriMfgSAxKJHSXOXxzR5nhYxfIHa0orzmB8oXfowwmwnCuvGzAAAgAElEQVS8cMrRB6uonMRcOjKOGyYk8t6aTC579VcsBh1f3nwaj188hBvO6MP6jHI2ZJa1OCa7rLbp//iR2FNYxX2fpfPqypZfCk63l8e+2c7uxiyU0j2dnn+jQS9zNpujsxKt8FJgO0BUH/+pLa4HkoUQiUIIAzATWNR8gBCiuTL9VKBl2+supF9IP7waN0Kj9BWdH3QXBumCHYuOemyBQ/mwy9zZxFhjCNAFHMxwCZOQn9Zl4Rbp9eL4fgkZM2Zy4I+X48rJPeJ4d2ERjq+/JmjaVLRWP+pZqKicINx3/kAmDYwgMtDEghvH0atBKGvGKfEEm/W8unI/Hq+PH7YVcPWb65jw7xWc8cwK/rcus5UwFoDPJ/nrx5s59/lVLFifzdPf72RLjpLGnFVay9T5P/PemkzOHTcKqTNBSdcbdIBSb/d459COLBcppUcIMRdYgpK2+JaUcpsQ4lEgVUq5CLhNCDEV8ABlwDXdNeF+If1AAAYfLqcXpzGMMo2d0LKMox5bUOlEqxHk1mSQFKwIVZXmVBNg02Ou3ATSBwnHviAqPR4y/zSbuo0b0ffqhbe8nIzLLiN23jwsY8e0eUzZu+8ifT7s119/zNdXUTkZ0GoE//3TaLw+2UJzyGzQ8afxCbz44x4m/HsF+ZVOogJN3DEpmY1ZFTzwxVYWpeURbjMSYjbw1/P6EWw2sGB9Np9tzOHa0xKYPT6By179lX8u2sp//zSa2W//Rnmti3evG6P0BMhN6pKQS2lds85ETkVOoMzbfRGAduWhSykXA4sP2fZQs9//Dvy9a6fWNpHmSGwGGx6dq6kNXb4mitCy/Uc9Nr+ijqnFaezI3E/S+NMozHCwZ0MR8QNCEJlLQaM/qLh2DJS99z51GzcS+Y9/EDJrJq6sLHJumUvWnDn0fudtzKNaRqS8lZVULFhA4PnnHzVVUUXl94QQAp22tYTF7PG9+WxDDn3CLTw8NYVzBkSg02rw+SSvrdrP5xtzKK6uJ7usli25lTw/YzhPfbeD8X3sPHThoKZGMHd/ms6UF3+mrNbFh3PGMjqhIX4e1hcKtnZ63kfy0CukBa9PdotcdY+rFBVC0C+kH05NLa46D0aLhhxNNCnl2456rGH7Zv60+n1cv0JJQT7f1KcRYNVz5hX94aMVSjGR4dgeh1w5uRS/9BLWiRMJufIKhBAYExNJ+PB/ZMycRc7cW0n4eCGG+IPLEuUffYSvthb7DXOO6doqKr8X7FYjv9zXWp5DoxH8ZWISf5moPIEv3V7ITR9s4Px5q/BJePLSIU0aR9NHxvHhb1lsyqpg/hUjDhpzAHsy7PgGPC7QdbxQz6w3E6ALaGnQ65QFUoe04PL4CDB0rBNSe+iRWi79QvpRjUPx0PVasomEqnxwHTkVKHb7ejxaLb/1F+RkDsFXU8dFtw7DoquCgnRF//wYkFJS8NijIARRDz3YQhxLGxxM3Cv/h/T5yP7LX3DnKjH1mrVrKX39v1jOmICpf//DnVpFRaUTnDsokmf/OJR6j487J/UjsZm+uUYjeP3q0Sy8cRwXDo1peWBYMkgvlGd0+tqhptA2PXQHZlydaGzfHnqsQXdqaqipqcOk05Dha1BFPMKb7/P5GHRgMxmJkfzfhSaqrXHEZS8n0Ars/0kZdIxyuVVLllCzchXht92KPiam1X5jYiJx8+bhzs1j34UXkf/Ph8m64Ub0sTFEP/roMV1bRUWlbS4ZEUfqA5OavPbmhNuMjG2rItXe0LnsGDNdWhr0CjwaEy701Hs73ti+PfRYg+7SOqmtrceo13DAF6HsOEIcvXz7LqKrS9g2KJAErfJhmRz5OBZ/q8jlBoQqTWLboHbjJio++4zSN96gevXqNlfQvQ4HBU88gWnQIEKvuuqw87CMG0vSt99gGT+eioULMQ8fTu///Q99VPcJ9qio/N6xWzsogxvWV/l5jJkuh3robr3Snam7PPQeF0Ov+OxzzG++gWf0eFzVyqLofk+48tV0BINe/P1SADb0c5OkUQx3YHgAFZ98Ssi4dOgzETQtY1qunBwKn3iS6hUrWmw3jxtH5D13Yxo0qGlb0XPP4S0tI/6VV4/agEIfE0P8/72Mc9cujImJCFVMS0XlxMIUBNbIYzboO0qbZXDXVeA2KPowqkFvQHo8uPcfwDZ2Ar56MOk1FHvMEBQC5QcOe5xr1U/sC4lnv7GA8bI3AJGTz6DqP4/jjCnGdFbL+Hn1z7+QM3cuaDRE3P03AidPRmOzUbnoa0rmz+fA9MsImjaNwIsupPKrr3B8/Q2hf7q6QyX7asz8IG63m5ycHJzOoxeG/J4wmUzExcWh13e9kJPKUQjrByVHL1g8HI0eupRSWU9zVuJpNOhe1aADoI9WQhNhwoDGq8Oo0eDxSWRIH8RhPHR3YRH63TtYO/hMXL58QjwROLWCyOkXUD3vKcr2WIjpc9Cg16z7jZxbbsGQmEj8q6+0CIeEXnUlQVMvovT11yl79z0qv/wSjdlMyNVXEX7HHd178ycxOTk52Gw2EhIS1E5LDUgpKS0tJScnh8TERH9P5/dHeH9I/wSkhE78TYaaQvFIz8Fm0c4KvIYQoPs89B4XQ9c1GNfwhu8ijc8FgDc4EXf2/jZbs1WvWA7A+kSl3NbqDMYaYkQfGkLwcBuV+y2Uf/8LAFXLlpH9l7+gj4+j11tvthnb1gYGEvG3v9Hnu++I+c+z9F35E1H3348mwD+SAScDTqcTu92uGvNmCCGw2+3qU4u/COsP9ZVQ1bm2eKEBh+SiOyvxGbs35NLjDLo+WlEZCPUoU690KmEWly2ejE/rybn99lbHVP24HEdoJGXx9eiEDqoN2OwBUF1EZNJOrINjKHjkUbKun0PO3FsxJPSm11tvoQsNbXWu5hjiYgmaMgWtzdbFd/n7RDXmrVHfEz8S3tBko5Nhl1bFRXUV+IzBgGrQm9DabGgsFiIaDPqWsiWApKrEgKdOS83Pv1C9enXTeG91DbVr17IzaQR6Sz5JwUlUl9Vjs5tg62cI4SP2uecIGD6cmnXrCJs7l8SFC9FHRPjpDlVUVE4IwgcoP4t3d+pwu0lJhyxzloHPB/UOZbGV7ouh9ziDDqCLjkJXqXzrlVZno7XspWZ7EQiJPiKUwqefRno8ANT8vBrpdrM2OgWPLpuBwYOorXQRaDdB+kKIHoam1zB6vfsOfZctJXzuLQh1Aep3SUFBATNnziQpKYlRo0ZxwQUXsHv3bjIyMhg8eHC3XHPVqlWMHDkSnU7Hp59+2i3XUOkk1kgwBh27h15XBq5qRSvKpHrordBHRSNKlQasoSIaY/j31KftwhzmImLGqbj27qP8448BJdyiDQ5mrc2Khyr66ZQsFJu+AvI2wdAZAGgMBjUX/HeMlJJLLrmEiRMnsm/fPjZs2MBTTz1FYWH3NVIA6NWrF++88w5XXHFFt15HpRMIoYRd2iHN3RYhJmUBtMxZ1iTMJQK610PvcVkuoGS6iF/SIRhOsU2iqPJhOODFOsqHLaYa89ixFP3raXRhYVSvXEnAxLNwiGzMQLzowzaqsJWtBqGBwdP9fTsqh/DI19vY3tDMu6sYFBPIPy86fErpihUr0Ov13HTTTU3bhg1T6hUyMjKatmVkZHD11VdT07D4Pn/+fE499VTy8/OZMWMGDocDj8fDK6+8wqmnnsr1119PamoqQgiuu+467rzzzhbXTUhIAECj6ZG+1clPWH/Y80OnDtVpdAQbgyl1ljaV/WsCujfLpUcadF1UFJqi76AfJJkGMWKdBXBgOWsSYvOHxN78OtnP1pJ7m7JA6ho3Ae3+ZYAg2BUOVGHL+hT6nAU21StXga1btzJq1NH7skRERLB06VJMJhN79uxh1qxZpKam8uGHH/KHP/yBBx54AK/XS21tLWlpaeTm5rJ1q6LaV1FR0d23odLVhPeDtA8UYa0GY9wRQg2BlGX9AgcU8UCNOQhwqQa9OfqoaHQeRYhLuCQjd1rIC3GQe/alTFq2D92Pd9Hr/vnkPOagPruYov5D0eS9S3RAL+orfQghsdZsgVM/9/OdqLTFkTxpf+N2u5k7dy5paWlotVp271YWzE455RSuu+463G43F198McOHD6dPnz7s37+fW2+9lSlTpnDeeef5efYqHSasofiveDf0Gtvhw0NdTsoqsqBaA3Fj0EUNpl/kbqym7jG9PfI5Tx8dhUCi1wN1boYWFLGjv41Xt76F7/L3QB+A9qtr6DVkDUnn7kObvRKtKY/k4P44cgqwaErQDLv8mNUVVU4eUlJS2LBhw1HHPf/880RGRrJ582ZSU1NxuZQ6iDPOOINVq1YRGxvLNddcw3vvvUdISAibN29m4sSJvPrqq8yZo8oj9zjCGwx6ZxdGJZTpDfC3XTBnKcHh0fxw55mt1R27iB5p0HVRSi66QefDW1iC3udFf8oF7CrfxQrHbrjxJ5j5IWLuerTxKcRufhiNvpKU4CSq9u8mUF8Gf3jSr/egcmJx9tlnU19fz+uvv960LT09ndXNUmABKisriY6ORqPR8P777+NtUM3LzMwkMjKSG264gTlz5rBx40ZKSkrw+XxMnz6dxx9/nI0bNx7Xe1LpAoJ7gc7U6YXRUI+HMm3X654fjh5p0BvL//W48ZZU4tZoCR0+izhrHO9vfx+C4mDAFCX+Ne1ldgolPDNqzYtU1QZg650AljYkM1V+twgh+OKLL1i2bBlJSUmkpKTw97//nahDMp9uvvlm3n33XYYNG8bOnTuxWBR97Z9++olhw4YxYsQIFi5cyO23305ubi4TJ05k+PDhXHXVVTz11FOtrrt+/Xri4uL45JNP+POf/0xKyokbbvpdotEq2uhFnWuTHOpyUikkLq+riyfWNj0yhq4JCEAbFITeW4e7uo4dIb3x6Exc1u8yXtj4AgcqD5AYpGhfyOhhvBieSKSnjKGmaDbIcGxJCf69AZUTkpiYGD5uSHc9lMaFzeTkZNLT05u2P/300wDMnj2b2bNntzruaF75KaecQk5OTmenrHI8iBoGu7/rlKZLYl012DTsq9jHQPvAbprgQXqkhw6gi45GW1OO2y3YHN6XOpeXaX2noRM6vtjzRdO4lTkrOaBxYKw8G/el3yAl2EJNfpy5iopKjyJmONSWQmUHv3ilZICjBICdZTu7YWKtaZdBF0JMFkLsEkLsFULcd4Rx04UQUggxuuum2Db6qChEcR5uXQBp4cnUuryEBYRxZvyZfLXvK9xeNz7pY/6m+ZiIoMZ3Kc5aJd4ZYFMrQVVUVNpJzAjlZ35ax46rK6eXy0mA0J04Bl0IoQVeBs4HBgGzhBCD2hhnA24H1nX1JNtCFx2F3lOLR2/hQFgCtS7FWE9Pnk6Zs4wFuxbwzPpn2FW+iyjfNIJMRuprFDkAo0U16CoqKu0kMgWEVqks7wjVhWiA/uboE8egA2OAvVLK/VJKF7AAmNbGuMeAp4HjovXZmIvu0+gxmwzUuhRjfWrMqURZovj3+n/zvx3/47ze56GtG0FggB5njRsAk2rQVVRU2os+ACIGQl4HPfRqRTaif1Aiu8p34ZPdU0zUnPYY9Fggu9nrnIZtTQghRgLxUspvj3QiIcSNQohUIURqcXFxhyfbHH2Dhw4QpNE2eehajZZHTn2EO0fdyZLpS/jPxP9Q7fRhM+lUg66iotI5YoYrIZc2+gkfluoiAAbYU6hx15BbldtNkzvIMS+KCiE0wHPAX482Vkr5upRytJRydHh4+DFdN2DoUIyBSkOJIJ22yUMHxUu/bvB1RFuVfHVHnZtAk576WsWgG809MrlHRUXFX0R3YmG0wUMfGKVISuws7/6wS3sMei4Q3+x1XMO2RmzAYOAnIUQGMA5Y1N0Lo4aEBHo/+U9lAhpNk4feFg6nWwm5VHvQm7RodT02uUelG/GHfO5zzz3HoEGDGDp0KOeccw6ZmZndch2VY6RxYbQjcfSqAtAF0DdiGFqhbdkwuptoj2VbDyQLIRKFEAZgJrCocaeUslJKGSalTJBSJgBrgalSytRumXEzjGYldGLVaKitb9ug13u8ON0+Ak06nLVuTGY13KLSGn/J544YMYLU1FTS09O57LLLuOeee7r1eiqdJDIFNLqOZbpUF4E1AqPORGJDHL27OWrsQUrpEULMBZYAWuAtKeU2IcSjQKqUctGRz9B9NIZOzGioaRZyaU6VU9keGKCnvqYWo0UNt5zwfHcfFGzp2nNGDYHz/3XY3f6Szz3rrIN6QuPGjeODDz7oirtV6Wr0ARDewYXR6kKlSQYwIHQAvxX81k2TO0i7rJuUcjGw+JBtDx1m7MRjn1b7aPS2AxDUHSbk4qhT4uaBJiXLRV0QVWmLE0E+98033+T888/vkvtR6Qaih3VMG726CML6AopB/2b/N5Q5y5o6GXUHPdpdNTR46AE+qPEe2UO3mXQU1HgIC1GrRE94juBJ+5vuks/94IMPSE1NZeXKlcfrVlQ6ij0J0oqgvgqM7WgMX10ACacBMMiulO5sLtrMWb26T+W1R68OajQCg0mLXnLYRVGHs8FDD1CyXNSiIpW28Kd87rJly3jiiSdYtGgRRqOxS+9LpQsJ7aP8LDtw9LGeeqUpRkPIZVj4MExaE2vz13bjBHu4QQdlYdTgVQy6bCNH1FHX4KEbdThrPJjUGLpKG/hLPnfTpk38+c9/ZtGiRURERHTvTaocG00Gff/Rx9Y01NlYlc/UoDUwKnIUv+b92k2TU+j5Bt2iQ+eVeH2yzcarjR66WQikT6oxdJU28Zd87t133011dTV//OMfGT58OFOnTj0u96vSCUIVBdd2GfSqhuwo68G/n/Ex48lwZFBQU9ANk1Po8e6q0axHU6YY7dp6L0ZdSzH5xkVRg/fgeBWVtvCHfO6yZcs6O12V443RBpaI9hn06kaDfvCpa3zMeADW5K3hkuRLumOGPd9DN5l1CLcSaql1t46jO5xutBqBcCveu8mqGnQVFZVOYk/qoEGPbNqUHJxMWEAYa/LWdNPkTgKDbjTrwKUY69r61pkuVU4PgSYd9bXKPpNa9q+iotJZQvu006ArOi7NPXQhBOOix7E2f223CXWdBAZdj6+hSrSmjUwXR50bm+mg0qKa5aKiotJpQhOhKh9cNUceV10AZjtoW9qb8THjKa8vZ1dZ91SN9nyDbtEhvRKtpIVAVyMOp4fAAF2TFrq6KKqiotJpGjNdyjOOPK6qsEW4pZFx0eMAWJffPW0jenz8oXGR0yRpU8+lUWnxoIfe429ZRUXFXzRPXYw8QkNvRy4ExrbaHGGOYOGFC+kX0q9bptfzPfSGmLhJisMuijYadL1Ji1bb429ZRUXFX4S0M3XRkQeBMW3uGmQfhE7TPY5lj7duLQx6G4uijrqDIRc13KJyJPwhn/vqq68yZMgQhg8fzumnn8727du75ToqXURAsBIbP5JB97igpqhND727OQkMumKkjYcp/69q9NBrVWEulcPjL/ncK664gi1btpCWlsY999zDXXfd1a3XU+kCjpbpUpWv/DyMh96d9PiAcgsP/ZBFUY/XR43Lq2S5VNeqnYp6CE//9nSXN9UdEDqAe8fce9j9/pLPDQwMbPq9pqYGIURX3K5KdxLaBzKPUMLvyFN+qga94zR63VZEq7TFg1roSh66za4qLaq0jT/lc19++WWee+45XC4Xy5cv79L7UukGQvtA+sfgdoK+DZviaGjo5oeQS4836EazDp1eQzCaVproTUqLJj0VNWq3op7CkTxpf9Md8rm33HILt9xyCx9++CGPP/4477777vG8JZWOEpoEyIZMl0Gt9/vRQ+/xMXQhBJYQI0FoqDlkUbRJadGko77GraYsqhwWf8rnNjJz5ky+/PLLLrkflW4kLFn5Wbqn7f2OPDDYwBTY9v5upMcbdABriBGrr3XaYqOHbhEapFSLilQOj7/kc/fsOWgUvv32W5KTk7vpDlW6DLvShYiSwxn0XL9453AShFwArMEmLPtba7lUNRj0AJSFJtWgqxyORvncO+64g6effhqTyURCQgIvvPBCi3E333wz06dP57333mPy5Mkt5HOfeeYZ9Ho9VquV9957j9zcXK699lp8PkW3oy353Pnz57Ns2TL0ej0hISFquKUnYLSCLeYIBv3wOejdTbsMuhBiMjAPpUn0G1LKfx2y/ybgFsALVAM3SimPW0KtJcSI0d3aoDeGXPQeRY1R1XFRORL+kM+dN29eZ6er4k/Cko8cckk6+/jOp4GjhlyEEFrgZeB8YBAwSwhx6ErAh1LKIVLK4cC/gee6fKZHwBpsRAN4atsOuegbNqseuoqKSpcQlgwle+HQLmlejyLM5ScPvT0x9DHAXinlfimlC1gATGs+QErpaPbSArTuBdeNWEOUPoyyrqWHXlnnRgjwVDd0LQo0HM9pqaionKzYk6G+8qBMbiPVhSB9J3TIJRbIbvY6Bxh76CAhxC3AXYABOK7PG9YQJRdU62ypMVxe6yLEbKCisBatXqPmoauoqHQNzTNdbM1UFZtSFo9/Djp0YZaLlPJlKWUScC/wj7bGCCFuFEKkCiFSi4uLu+rSWIIVD113iEEvq3ERYtZTnl9LcKQZjUatwlNRUekCGg36oQujjhzl5wkccskF4pu9jmvYdjgWABe3tUNK+bqUcrSUcnR4eHj7Z3kUAqx6pAaM7paRnrIaF3aLkfKCGkKjzF12PRUVld85gXGgC2jDoPuvqAjaZ9DXA8lCiEQhhAGYCSxqPkAI0Tx5dgpwmOXf7kFoBARosXjB5TnopZfVuAg16agqcxISbTmeU1JRUTmZ0WiUfPRDM10ceaA3Q0CIf6Z1tAFSSg8wF1gC7AA+llJuE0I8KoSY2jBsrhBimxAiDSWO3jp/q5vRWHRYfaJF+X9ZjZsItCAhJEo16CpHxh/yuY189tlnCCFITU3t1uuodCFhfdvw0BuKivwkstauPHQp5WJg8SHbHmr2++1dPK8Oo7fqsZUIalwegsx6fD5Jea2L4IbEl5BoNeSicnga5XNnz57NggULANi8eTOFhYXEx8cf5ehjo6qqinnz5jF2bKtcA5UTmbB+sP0r8NSDTlnH82dREZwklaIAxkADNp+gpt4NBFDl9OD1ScxOiU8jCI5QDXpPoeDJJ6nf0bXyucaBA4i6//7D7veXfC7Agw8+yL333sszzzzTRXerclywJyspiiV7IGow5G+G3I0w+jq/TemkMegBgQaqEDgqXRAJpTX1AOhrvJjCA9DqTgrZGpVuwl/yuRs3biQ7O5spU6aoBr2nEX8KaI3w5U0wawF8NgcsYTDxPr9N6aQx6JaG4qKKUieg5KADyEo3IfE2v81LpeMcyZP2N10pn+vz+bjrrrt45513/HAnKsdMSALM+hA+ugJeGg2eOvjTV2AO9duUThq31dZQXFRdoRj00moXGgmuino1w0XlqPhDPreqqoqtW7cyceJEEhISWLt2LVOnTlUXRnsSfSfBrI+URdDT74Q+E/06nZPGoAc3VIHWlCuhlvJaF8E+gfSh5qCrHBV/yOcGBQVRUlJCRkYGGRkZjBs3jkWLFjF69Ojuv2GVrqPvOXD3Ppj0sL9ncvKEXIJDTfiQ1DsU3ZbSGhd2r5I6pHroKkfDX/K5KicJhhPDaTxpDLrVpKdcI9Hur6K+1k15dT39fMrtBUeeGG+2yomNP+Rzm/PTTz91YLYqKq05aUIuZqOWH8xuZLWbJW9sw7e1kkFOLcPOicdgOmm+t1RUVFQOy0lj0A1aDfkGSf2wILK3lxGa4SQnWMNp0/v6e2oqKioqx4WTxqALITAbtDiiTYy7uA+Zdg25yQGKzouKiorK74CTxqAD2Iw6KuvcjJqcwJogH3ar0d9TUlFRUTlunFQGfUB0INvyKgEoq1aaW6ioqKj8XjipDPqwuGD2FFVTVuOixuXFblUNuoqKyu+Hk8ugxwchJazcrfT5Uz10lY7gD/ncd955h/DwcIYPH87w4cN54403uuU6Kr8PTqp8vmFxwQCs2Km0twu1qAZdpX34Uz53xowZzJ8/v1uvofL74KQy6CEWA73tZlbuVg16T2b1x7spya7u0nOGxVuZcHm/w+73p3yuikpXcVIZdFC89EWblb5+qkFXaS/+ks8FpVvRqlWr6NevH88//3y3PxGonLycfAY9XjXoPZ0jedL+pivlcwEuuugiZs2ahdFo5LXXXmP27NksX778eN+WyknCSbUoCjA8PggAjYCgAL2fZ6PSU/CHfC6A3W7HaFTqJebMmdOuOaioHI6TzqCnxASh1QiCzQa0apWoSjvxh3wuQH5+ftPvixYtYuDAgd10hyq/B9oVchFCTAbmAVrgDSnlvw7ZfxcwB/AAxcB1UsrMLp5ruzDptQyIsuF0e/1xeZUeir/kc1988UUWLVqETqcjNDRU7V6kckwIKeWRBwihBXYD5wI5wHpglpRye7MxZwHrpJS1Qoi/ABOllDOOdN7Ro0fL7urM8uOOQqrrPUwbHtst51fpenbs2KF6p4dBfW9UmiOE2CClbLMLSns89DHAXinl/oaTLQCmAU0GXUq5otn4tcBVnZ/usXPOwEh/Xl5FRUXFL7Qnhh4LZDd7ndOw7XBcD3zX1g4hxI1CiFQhRGpxcXH7Z6mioqKiclS6dFFUCHEVMBp4pq39UsrXpZSjpZSjw8PDu/LSKicBRwv//R5R3xOVjtAeg54LNK90iGvY1gIhxCTgAWCqlLK+a6an8nvBZDJRWlqqGrBmSCkpLS3FZDL5eyoqPYT2xNDXA8lCiEQUQz4TuKL5ACHECOA1YLKUsqjLZ6ly0hMXF0dOTg5qKK4lJpOJuLg4f09DpYdwVIMupfQIIeYCS1DSFt+SUm4TQjwKpEopF/1/e/cfa3Vdx3H8+SqIplRIZJJY90pkIlMkcpCtWTEEc7hWaygrm23lamnN2bixufwrG67CTaxmxSy0JiTj+DkAAAcdSURBVFIyxhIj15Zz+CORewPv+CFDnCa10sjVNN798fmc+HK4t4vcc+73B6/HdnbP98c953XfO9/POffz/Z7Ph9TFMhG4VxLA/ohY0sXc1jDjx4+nt7e37BhmtXZc16FHxCZgU9u6mwr3F3Q4l5mZvU6N+6aomdnJyg26mVlDjPhN0a49sXQQONHhAaYAf+lgnG5z3u6qU946ZQXn7bYTyfueiBjyuu/SGvTRkPT4cF99rSLn7a465a1TVnDebut0Xne5mJk1hBt0M7OGqGuD/qORd6kU5+2uOuWtU1Zw3m7raN5a9qGbmdmx6voJ3czM2rhBNzNriNo16JIWSRqUtFvS8rLztJN0lqSHJO2Q9CdJ1+f1kyU9KGlX/nla2VlbJL1R0pOSNublXklbc41/KelNZWdskTRJ0jpJT0vaKWl+xWv79fw6GJB0j6Q3V6m+kn4i6UVJA4V1Q9ZTyW0593ZJcyqSd2V+PWyX9CtJkwrb+nLeQUmXViFvYdsNkkLSlLw86vrWqkHP0+HdDiwGZgJXSppZbqpjvAbcEBEzgXnAV3LG5cCWiJgBbMnLVXE9sLOw/B3gexHxXuBvpElLqmIV8JuIeD9wASl3JWsr6UzgOmBuRMwiDW63lGrVdw2wqG3dcPVcDMzIty8Cd4xRxqI1HJv3QWBWRJxPmi6zDyAfd0uB8/LvrM5tyFhaw7F5kXQWsBDYX1g9+vpGRG1uwHzggcJyH9BXdq4RMt9Pmo91EJia100FBsvOlrNMIx20HwM2AiJ9c23cUDUvOevbgGfIJ/ML66ta29ZsX5NJA+FtBC6tWn2BHmBgpHqShsi+cqj9yszbtu2TwNp8/6j2gTRi7Pwq5AXWkT6Q7AOmdKq+tfqEzuufDq9UknqAC4GtwDsj4vm86QWgKhOffh/4BnA4L78d+HtEvJaXq1TjXuAg8NPcRXSnpFOpaG0j4jngVtKnsOeBl4AnqG59W4arZx2Ov2s4MgVmJfNKugJ4LiKeats06rx1a9BrQ9JE4D7gaxHxcnFbpLff0q8XlXQ58GJEPFF2luM0DpgD3BERFwL/pK17pSq1Bch9z1eQ3ojeBZzKEP9+V1mV6jkSSStIXZ5ry84yHEmnAN8Ebhpp3xNRtwb9uKbDK5uk8aTGfG1ErM+r/yxpat4+FajCzE4XA0sk7QN+Qep2WQVMktQaK79KNT4AHIiIrXl5HamBr2JtARYAz0TEwYh4FVhPqnlV69syXD0re/xJ+jxwObAsvwlBNfNOJ73BP5WPu2nAHyWdQQfy1q1B/990ePnKgKXAhpIzHUWSgB8DOyPiu4VNG4Cr8/2rSX3rpYqIvoiYFhE9pFr+LiKWAQ8Bn867VSIrQES8ADwr6Zy86uPADipY22w/ME/SKfl10cpbyfoWDFfPDcDn8tUY84CXCl0zpZG0iNRtuCQiXils2gAslTRBaQrNGcCjZWRsiYj+iDg9InrycXcAmJNf26Ov71ifIOjACYbLSGey9wArys4zRL4Pk/5F3Q5sy7fLSH3TW4BdwG+ByWVnbct9CbAx3z+b9MLfDdwLTCg7XyHnbODxXN9fA6dVubbAzcDTwADwM2BCleoL3EPq3381Ny5fGK6epBPmt+djr5909U4V8u4m9T23jrcfFPZfkfMOAourkLdt+z6OnBQddX391X8zs4aoW5eLmZkNww26mVlDuEE3M2sIN+hmZg3hBt3MrCHGjbyLWbVIal1WB3AG8B/SkAAAr0TEh8YgwyTgqohY3e3nMjtevmzRak3St4BDEXHrGD9vD+m6/Vlj+bxm/4+7XKxRJB3KPy+R9HtJ90vaK+kWScskPSqpX9L0vN87JN0n6bF8u3iIxzwv/962PE71DOAWYHpetzLvd2N+jO2Sbs7revJY3WuVxm9fl8fzMOs4N+jWZBcA1wLnAp8F3hcRFwF3Al/N+6wijU3+QeBTeVu7a4FVETEbmEv6xt9yYE9EzI6IGyUtJH21/CLSt1k/IOkj+ffPAVZHxLnAy8CXO/+nmrkP3ZrtschjYUjaA2zO6/uBj+b7C4CZaagVAN4qaWJEHCo8ziPACknTgPURsauwf8vCfHsyL08kNfD7gWcj4uG8/uekSS/GtIvITg5u0K3J/l24f7iwfJgjr/03APMi4l/DPUhE3C1pK/AJYJOkLwF723YT8O2I+OFRK1Nfe/uJKp+4sq5wl4ud7DZzpPsFSbPbd5B0NrA3Im4jjTx4PvAP4C2F3R4Arsnj4CPpTEmn523vljQ/378K+EPH/woz3KCbXQfMzScyd5D6y9t9BhiQtA2YBdwVEX8FHlaa/HllRGwG7gYekdRPGqu91eAPkuaW3UkaHbKMuTjtJODLFs26yJc32ljyJ3Qzs4bwJ3Qzs4bwJ3Qzs4Zwg25m1hBu0M3MGsINuplZQ7hBNzNriP8Cu5/ayweBXwIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "idx_plt = [np.where(y_outlier == i)[0][0] for i in list(np.unique(y_outlier))]\n",
    "X_plt = np.concatenate([X_inlier[0:1], X_outlier[idx_plt]], axis=0)\n",
    "\n",
    "for i in range(X_plt.shape[0]):\n",
    "    plt.plot(X_plt[i], label='Class ' + str(i+1))\n",
    "plt.title('ECGs of Different Classes')\n",
    "plt.xlabel('Time step')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load or define Seq2Seq outlier detector\n",
    "\n",
    "The pretrained outlier and adversarial detectors used in the example notebooks can be found [here](https://console.cloud.google.com/storage/browser/seldon-models/alibi-detect). You can use the built-in ```fetch_detector``` function which saves the pre-trained models in a local directory ```filepath``` and loads the detector. Alternatively, you can train a detector from scratch:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "load_outlier_detector = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "filepath = 'my_path'  # change to (absolute) directory where model is downloaded\n",
    "detector_type = 'outlier'\n",
    "dataset = 'ecg'\n",
    "detector_name = 'OutlierSeq2Seq'\n",
    "filepath = os.path.join(filepath, detector_name)\n",
    "if load_outlier_detector:  # load pretrained outlier detector\n",
    "    od = fetch_detector(filepath, detector_type, dataset, detector_name)\n",
    "else:  # define model, initialize, train and save outlier detector\n",
    "\n",
    "    # initialize outlier detector\n",
    "    od = OutlierSeq2Seq(1,\n",
    "                        X_inlier.shape[1],  # sequence length\n",
    "                        threshold=None,\n",
    "                        latent_dim=40)\n",
    "\n",
    "    # train\n",
    "    od.fit(X_inlier,\n",
    "           epochs=100,\n",
    "           verbose=False)\n",
    "\n",
    "    # save the trained outlier detector\n",
    "    save_detector(od, filepath)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's inspect how well the sequence-to-sequence model can predict the ECG's of the inlier and outlier classes. The predictions in the charts below are made on ECG's from the test set:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "ecg_pred = od.seq2seq.decode_seq(X_test)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "i_normal = np.where(y_test == 0)[0][0]\n",
    "plt.plot(ecg_pred[i_normal], label='Prediction')\n",
    "plt.plot(X_test[i_normal], label='Original')\n",
    "plt.title('Predicted vs. Original ECG of Inlier Class 1')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n",
    "i_outlier = np.where(y_test == 1)[0][0]\n",
    "plt.plot(ecg_pred[i_outlier], label='Prediction')\n",
    "plt.plot(X_test[i_outlier], label='Original')\n",
    "plt.title('Predicted vs. Original ECG of Outlier')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is clear that the model can reconstruct the inlier class but struggles with the outliers.\n",
    "\n",
    "If we trained a model from scratch, the warning thrown when we initialized the model tells us that we need to set the outlier threshold. This can be done with the `infer_threshold` method. We need to pass a time series of instances and specify what percentage of those we consider to be normal via `threshold_perc`, equal to the percentage of *Class 1* in *X_threshold*. The `outlier_perc` parameter defines the percentage of features used to define the outlier threshold. In this example, the number of features considered per instance equals 140 (1 for each timestep). We set the ```outlier_perc``` at 95, which means that we will use the 95% features with highest reconstruction error, adjusted for by the threshold estimate."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "New threshold: 0.002807901981854227\n"
     ]
    }
   ],
   "source": [
    "od.infer_threshold(X_threshold, outlier_perc=95, threshold_perc=perc_inlier)\n",
    "print('New threshold: {}'.format(od.threshold))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's save the outlier detector with the updated threshold:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "save_detector(od, filepath)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can load the same detector via `load_detector`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "od = load_detector(filepath)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Detect outliers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "od_preds = od.predict(X_test,\n",
    "                      outlier_type='instance',    # use 'feature' or 'instance' level\n",
    "                      return_feature_score=True,  # scores used to determine outliers\n",
    "                      return_instance_score=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Display results\n",
    "\n",
    "F1 score, accuracy, recall and confusion matrix:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "F1 score: 0.964 -- Accuracy: 0.970 -- Precision: 0.975 -- Recall: 0.952\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_pred = od_preds['data']['is_outlier']\n",
    "labels = ['normal', 'outlier']\n",
    "f1 = f1_score(y_test, y_pred)\n",
    "acc = accuracy_score(y_test, y_pred)\n",
    "prec = precision_score(y_test, y_pred)\n",
    "rec = recall_score(y_test, y_pred)\n",
    "print('F1 score: {:.3f} -- Accuracy: {:.3f} -- Precision: {:.3f} -- Recall: {:.3f}'.format(f1, acc, prec, rec))\n",
    "cm = confusion_matrix(y_test, y_pred)\n",
    "df_cm = pd.DataFrame(cm, index=labels, columns=labels)\n",
    "sns.heatmap(df_cm, annot=True, cbar=True, linewidths=.5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also plot the ROC curve based on the instance level outlier scores:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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K+BS4PpiyiIiQbJgwQLatm1L69atmThxIg0bNgx1JBEROYbCijQDcPfVxZRFRIrQ6tWrefnll2nbti0dOnRg9uzZxMXFhTqWiIgEqLAirbqZPXa0D939lSDkCViDZ6axY08up58SFcoYImFn586ddO3alU8//ZRu3brRtGlToqOjVaCJiESYwoq0skAl8nvUws2OPbmsfaljqGOIhAV3Z/r06ezdu5drr72Wtm3bMnToUK2nKSISwQor0ja6+7PFlkREjpu7M2bMGJKTk9m7dy/PP/88Zsa9994b6mgiInKSjnlPmoiEnz179pCens4VV1zBV199RZ8+fejYsaMWPBcRKUEK+xv96mJLISIB2bZtG8899xwxMTG89dZbALz88stcd911KtBEREqYo/akufu24gwiIke3a9cuKleuTK9evThw4ACfffYZderUCXUsEREJIj3BUiSMLVmyhOTkZD799FMyMjIYPHgweUvqiohISafxEZEwNWjQIK6++mri4+NZvHgxFSpUUIEmIlKKqEgTCRMHDx7kgw8+oHnz5mRkZNC5c2fWrFnDU089xRlnnBHqeCIiUsw03CkSBhYuXMitt95KxYoV6dWrFzExMZQtWzbUsUREJIRUpImEyM6dOxk8eDAtW7YkLi6ON954g1atWmlIU0REAA13ihS7nTt38uSTTxIbG8v8+fM57bTTOOOMM2jdurUKNBEROUQ9aSLFZNWqVWRlZZGQkMCBAweYO3cuMTExoY4lIiJhSj1pIkE2d+5cbr75Zpo1a0ZaWhoVKlQgOTlZBZqIiBRKRZpIELg7GzduxN15+umnad68OZmZmdx9992hjiYiIhFCw50iRWj//v2HFjyPjY1l/PjxTJ06NdSxREQkAqlIEykC7o6Z8fvf/56NGzfywgsv0L59+1DHEhGRCKYiTeQkbN26lddff51x48Yxf/58hgwZQuXKlUMdS0RESgDdkyZygoYPH07t2rVZt24d77//PuXKlVOBJiIiRUZFmshxWLRoEX/4wx/Ytm0bLVq0ID09naFDhxIfHx/qaCIiUsKoSBMJwLJly+jQoQPt2rXjoosuIjo6mtjYWH7961+HOpqIiJRQuidN5CgOHDjABx98wGWXXUZ0dDSdOnVi/PjxVKhQIdTRRESkFFCRJnKYffv2kZKSQr9+/ahSpQpvv/02l1xyCbVq1Qp1NBERKUVUpInk27FjB1lZWURHR/PRRx8xaNAgWrZsqfU0RUQkJHRPmpR6GzZs4IknniA2NpaJEydSvXp1PvjgAxITE1WgiYhIyKgnTUqt3NxcypQpQ2JiIu3bt2f+/Pmcf/75oY4lIiICqEiTUmjOnDkkJycDMH78eJYsWUJUVFSIU4mIiPychjulVLn77ru59dZbad26Ne+++y6ACjQREQlLKtKkRMvNzeXdd9+lc+fOHDx4kKeffppVq1bRvXt3KlasGOp4IiIiR6UiTUqs999/n1q1avHOO+9wzz33YGbExcVRrpxG+UVEJPypSJMSZcuWLbz44ovk5ORQs2ZNxo4dy2effUa7du00U1NERCKKijQpEb799lu6d+9OfHw8a9euJTs7myZNmtCoUaNQRxMRETkhGveRiLZgwQJiY2NZv349lStXZunSpZx99tmhjiUiInLSVKRJxHF3PvvsM5KTk0lPT2fChAk0bdqUpk2bhjqaiIhIkdFwp0SMAwcOkJ2dzerVq3n44Ye55ZZbyMzM1JCmiIiUSCrSJOzt2bOHt99+m/j4eIYMGUJcXBxLlizhnnvuoXz58qGOJyIiEhQa7pSwlpOTQ0JCAvXq1eOdd96hefPmAJqpKSIiJZ6KNAk769ev59VXX2XPnj288cYbzJkzR5MBRESk1NFwp4SVxx57jPr163PgwAF69eoFoAJNRERKpaAWaWbWzsxWmFmGmfU+wuePmdlSM1tkZp+a2fnBzCPh6T//+Q/PPvssANdddx0ZGRn079+f8847L8TJREREQidoRZqZlQXeANoDdYBbzazOYYctAC539/rAWCA5WHkk/Hz66ac0b96c3//+91SvXh13p1WrVlStWjXU0UREREIumD1pjYAMd8909xxgNPDbgge4++fuvjt/cw5QM4h5JAzk5uYyfvx43J2tW7fSvXt3Vq5cyQMPPKDJACIiIgUEc+JADWBdge31wJWFHH8v8HEQ80gI7dq1iyFDhvDSSy/RoEEDWrVqRefOnUMdS0REJGyFxexOM/s9cDnQ8iif3wfcB1C9enVSU1MBDv0q4evHH3+kcuXKfPnll3zxxRc89dRTNGzYkLS0tFBHk+OUlZWln7kIpvaLXGq70iuYRdp3wLkFtmvm7/sZM7sG+AvQ0t33HelE7j4YGAwQHx/viYmJ8MlkEhMTizqzFJHVq1fTr18/3nvvPT755BP69OkD5BXWarfIpLaLbGq/yKW2K72CeU/aXKC2mcWYWTTQBZhU8AAzuwQYBFzv7puDmEWKibuzePFirrzySs4880yWL1+uZZtEREROQNB60tx9v5l1B6YCZYFh7r7EzJ4Fvnb3SUBfoBLwfv5N49+6+/XByiTB4e5Mnz6d5ORkOnXqxAMPPMDatWupVKlSqKOJiIhErKDek+buU4Aph+37W4H31wTz+hJ8u3fv5qqrrmLv3r088cQT3HrrrZiZCjQREZGTFBYTBySy7Nmzh3feeYfc3FweffRRXn/9da688krKlNECFiIiIkVF/6rKcUlKSuKCCy5g6tSpXHll3hNVmjRpogJNRESkiKknTY5p3bp1/Oc//+GWW26hWrVqpKamkpCQEOpYIiIiJZq6P+So0tPTueuuu372XLN7771XBZqIiEgxUJEmP+PuLFmyBICPPvqIiy66iIyMDF544YUQJxMRESldNNwpABw8eJBJkyaRnJzMDz/8wPz58+ndu3eoY4mIiJRa6kkr5XJycnB3Bg8ezPPPP89jjz3GsmXL9AgNERGREFORVkrt3LmTvn37EhMTw6JFi/jjH//IV199xU033UTZsmVDHU9ERKTUU5FWCs2fP5/Y2FgWLFjA5MmTadCgAeXKlSN/1QcREREJA7onrZRYuXIl/fr1o3379nTs2JG5c+cSExMT6lgiIiJyFOpJK+F27NjBTTfdRPPmzTnnnHNo3rw50dHRKtBERETCnHrSSiB3Z+rUqeTk5HDddddx7bXX8q9//YuKFSuGOpqIiIgESD1pJYi7M2LECBo2bMgTTzwBgJlx9913q0ATERGJMOpJKwGys7NJT0/nyiuvZOHChbz44ou0b99eEwFEREQimHrSItgPP/xAnz59iImJYciQIQD07duXDh06qEATERGJcOpJi0A7duzg9NNP58knnwRg5syZxMfHhziViIiIFCUVaREkLS2N5ORkvvjiCzIyMhg8eLB6zEREREooDXdGiLfeeov27dtTv359lixZQoUKFVSgiYiIlGAq0sLUgQMHGDduHE2aNCEjI4Nbb72VNWvW0KtXL04//fRQxxMREZEg03BnGFqwYAG33HILZ5xxBr169SImJkbraYqIiJQyKtLCxPbt23n77be5+uqriYuLY8iQIbRo0UJDmiIiIqWUhjtDbOfOnTzxxBPUqlWL9PR0qlSpwhlnnEHLli1VoImIiJRi6kkLkeXLl7N7927q1KlD2bJlmT9/Pueff36oY4mIiEiYUE9aMZs9ezadOnWiRYsWpKenU6FCBV588UUVaCIiIvIz6kkrBu7Ohg0bOOecc3j22Wfp2LEjI0aM4NRTTw11NBERCYLc3FzWr1/P3r17T/pcp59+OsuWLSuCVBJMFSpUoGbNmkRFRRXZOVWkBVFubi6jR48mOTmZ+Ph4xo4dy8cffxzqWCIiEmTr16+ncuXKXHDBBSd9f/GuXbuoXLlyESWTYHB3tm7dyvr164mJiSmy86pIC4KDBw9SpkwZbr/9dn744Qf69etH27ZtQx1LRESKyd69e4ukQJPIYGaceeaZbNmypUjPqyKtCG3ZsoWBAwcyYcIEFi5cyDvvvEPFihVDHUtEREJABVrpEoz21sSBIjJs2DAuvPBCNm/ezIQJEyhXrpwKNBERCZnnn3+eunXrUr9+fRo2bMh///tfAG6//Xbi4+OpV68e99xzD7m5uQBs2rSJa6+9lgYNGlCnTh06dOgQ0HV++OEHoqKiePvtt3+2v1KlSj/bHj58ON27dz+0nZKSQr169bj44ou55JJL6NevX8C/txdffJG4uDji4+OZOnXqEY/57LPPuPTSS6lXrx533XUX+/fvB+DHH3+kU6dO1K9fn0aNGpGeng7AunXraNWqFXXq1KFu3boMGDDg0Ln69OlDjRo1aNiwIQ0bNmTKlCkBZz0ZKtJOwoIFC7jzzjvZunUrrVq1YtmyZQwaNIjatWuHOpqIiJRis2fP5qOPPmL+/PksWrSI6dOnc+655wJ5Rdry5ctZvHgxe/bsYejQoQD87W9/o02bNqSlpbF06VJeeumlgK71/vvv07hxY0aNGhVwvo8//phXX32VadOmsXjxYubMmRPwkodLly5l9OjRLFmyhE8++YQHH3yQAwcO/OyYgwcPctdddzF69GjS09M5//zz+de//gXACy+8QMOGDVm0aBEpKSk8+uijAJQrV46XX36ZpUuXMmfOHN544w2WLl166Jx//vOfWbhwIQsXLgy4gD1ZKtJOwJIlS2jbti3XXXcd9evXp3z58sTExHD22WeHOpqIiAgbN26kWrVqlC9fHoBq1arx61//GoAOHTpgZpgZjRo1Yv369Ye+U7NmzUPnqF+/fkDXGjVqFC+//DLffffdoXMdy4svvki/fv0OZSpfvjxdu3YN6LsffPABXbp0OfRvb1xcHF999dXPjtm6dSvR0dFceOGFALRp04Zx48YBeUVe69atAbjoootYu3YtmzZt4pxzzuHSSy8FoHLlyiQkJPDdd98FlClYVKQF6MCBA4wZM4ZvvvmGChUq0KVLF1avXs3jjz/+iy5dERGRUGrbti3r1q3jwgsv5MEHH+SLL774xTG5ubm8++67tGvXDoCHHnqIe++9l1atWvH888+zYcOGQ8c2bNjwiNdZt24dGzdupFGjRnTu3Jn33nsvoHzp6elcdtllR/ysb9++h4YVC74eeeQRAL777rtDvYIANWvW/EUxVa1aNfbv38/XX38NwNixY1m3bh0ADRo0YPz48QB89dVXfPPNN78oLteuXcuCBQu48sorD+17/fXXqV+/Pvfccw8//vhjQL/Pk6WJA8ewd+9ehg8fTr9+/TjrrLN48803adiwIbVq1Qp1NBERiRAX9J5c5Odc+1LHo35WqVIl5s2bx8yZM/n888+55ZZbeOmll7j77rsPHfPggw/SokULrrrqKgB+85vfkJmZySeffMLHH3/MJZdcQnp6OtWrV2fhwoVHvM57771H586dAejSpQv33HMPPXr0OGquQG6u79mzJz179jzmcYUxM0aPHs2f//xn9u3bR9u2bSlbtiwAvXv35tFHH6Vhw4aH7of76TOArKwsbrzxRl599VVOO+00AB544AH++te/Ymb89a9/pUePHgwbNuykMgZCRdpR/Pjjj2RnZ1O+fHmmTZvG8OHDad68eahjiYhIBCqsoDqWE31OWtmyZUlMTCQxMZGLL76Yf/3rX4eKtGeeeYYtW7YwaNCgn32natWq3Hbbbdx2221ce+21zJgxgxtvvPGo1xg1ahTff/89I0aMAGDDhg2sWrWK2rVrc8opp5CTk0N0dDQA27Zto1q1agDUrVuXefPmHRp2LKhv376HzldQixYtGDhwIDVq1DjUKwZ5z6SrUaPGL45v0qQJM2fOBGDatGmsXLkSgNNOO4133nkHyHu+WUxMDLGxsUBe7+KNN97I7bffzg033HDoXL/61a8Ove/atSvXXnvtUf9MipKGOw+zfv16evToQa1atfjwww+pXr0648ePV4EmIiIRY8WKFaxaterQ9sKFCw8tPzh0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",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "roc_data = {'S2S': {'scores': od_preds['data']['instance_score'], 'labels': y_test}}\n",
    "plot_roc(roc_data)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
